Fix Alembic migrations module import error
- Updated migrations/env.py to add project root to Python path - Created run_migrations.py helper script for running migrations - Updated README with instructions for using the helper script - Fixed the 'No module named app' error when running migrations
This commit is contained in:
parent
27c9268a6a
commit
84555ef4e8
13
README.md
13
README.md
@ -49,7 +49,8 @@ A comprehensive HR platform backend built with FastAPI and SQLite, providing emp
|
|||||||
│ └── versions # Migration versions
|
│ └── versions # Migration versions
|
||||||
├── openapi.json # Generated OpenAPI schema
|
├── openapi.json # Generated OpenAPI schema
|
||||||
├── openapi_schema.py # Script to generate OpenAPI schema
|
├── openapi_schema.py # Script to generate OpenAPI schema
|
||||||
└── requirements.txt # Python dependencies
|
├── requirements.txt # Python dependencies
|
||||||
|
└── run_migrations.py # Helper script for running Alembic migrations
|
||||||
```
|
```
|
||||||
|
|
||||||
## Getting Started
|
## Getting Started
|
||||||
@ -81,10 +82,16 @@ A comprehensive HR platform backend built with FastAPI and SQLite, providing emp
|
|||||||
|
|
||||||
### Running Migrations
|
### Running Migrations
|
||||||
|
|
||||||
Run Alembic migrations to set up the database schema:
|
Run Alembic migrations to set up the database schema using the provided script:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
alembic upgrade head
|
python run_migrations.py upgrade head
|
||||||
|
```
|
||||||
|
|
||||||
|
Alternatively, if you need to create a new migration:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python run_migrations.py revision --autogenerate -m "description"
|
||||||
```
|
```
|
||||||
|
|
||||||
### Running the Application
|
### Running the Application
|
||||||
|
@ -1,10 +1,17 @@
|
|||||||
from logging.config import fileConfig
|
from logging.config import fileConfig
|
||||||
|
import sys
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
from sqlalchemy import engine_from_config
|
from sqlalchemy import engine_from_config
|
||||||
from sqlalchemy import pool
|
from sqlalchemy import pool
|
||||||
|
|
||||||
from alembic import context
|
from alembic import context
|
||||||
|
|
||||||
|
# Add the project root directory to the Python path
|
||||||
|
# This allows Alembic to find the app module
|
||||||
|
BASE_DIR = Path(__file__).resolve().parent.parent
|
||||||
|
sys.path.append(str(BASE_DIR))
|
||||||
|
|
||||||
# this is the Alembic Config object, which provides
|
# this is the Alembic Config object, which provides
|
||||||
# access to the values within the .ini file in use.
|
# access to the values within the .ini file in use.
|
||||||
config = context.config
|
config = context.config
|
||||||
|
25
run_migrations.py
Executable file
25
run_migrations.py
Executable file
@ -0,0 +1,25 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
"""
|
||||||
|
Helper script to run Alembic migrations with the correct Python path.
|
||||||
|
Usage:
|
||||||
|
python run_migrations.py upgrade head
|
||||||
|
python run_migrations.py revision --autogenerate -m "description"
|
||||||
|
python run_migrations.py --help
|
||||||
|
"""
|
||||||
|
|
||||||
|
import sys
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
# Add the project root directory to the Python path
|
||||||
|
BASE_DIR = Path(__file__).resolve().parent
|
||||||
|
sys.path.append(str(BASE_DIR))
|
||||||
|
print(f"Added {BASE_DIR} to Python path")
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
# Import alembic's main function
|
||||||
|
from alembic.config import main
|
||||||
|
|
||||||
|
# Execute alembic command with sys.argv (e.g., 'upgrade', 'head')
|
||||||
|
main(argv=sys.argv[1:])
|
Loading…
x
Reference in New Issue
Block a user