mirror of https://github.com/Aidaho12/haproxy-wi
64 lines
2.1 KiB
Python
Executable File
64 lines
2.1 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
import argparse
|
|
import sys
|
|
import os
|
|
|
|
# Add the parent directory to the path so we can import the app modules
|
|
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
|
|
|
|
from app.modules.db.migration_manager import create_migrations_table, migrate, rollback, create_migration, list_migrations
|
|
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser(description='Database migration tool')
|
|
subparsers = parser.add_subparsers(dest='command', help='Command to run')
|
|
|
|
# Create migration command
|
|
create_parser = subparsers.add_parser('create', help='Create a new migration')
|
|
create_parser.add_argument('name', help='Name of the migration')
|
|
|
|
# Migrate command
|
|
subparsers.add_parser('migrate', help='Apply pending migrations')
|
|
|
|
# Rollback command
|
|
rollback_parser = subparsers.add_parser('rollback', help='Rollback migrations')
|
|
rollback_parser.add_argument('--steps', type=int, default=1, help='Number of migrations to roll back')
|
|
|
|
# Initialize command
|
|
subparsers.add_parser('init', help='Initialize the migrations table')
|
|
|
|
# list command
|
|
subparsers.add_parser('list', help='List all migrations and their status')
|
|
|
|
args = parser.parse_args()
|
|
|
|
if args.command == 'create':
|
|
filename = create_migration(args.name)
|
|
print(f"Created migration file: {filename}")
|
|
elif args.command == 'migrate':
|
|
success = migrate()
|
|
if success:
|
|
print("Migrations applied successfully")
|
|
else:
|
|
print("Error applying migrations")
|
|
sys.exit(1)
|
|
elif args.command == 'rollback':
|
|
success = rollback(args.steps)
|
|
if success:
|
|
print(f"Rolled back {args.steps} migration(s) successfully")
|
|
else:
|
|
print("Error rolling back migrations")
|
|
sys.exit(1)
|
|
elif args.command == 'list':
|
|
list_migrations()
|
|
elif args.command == 'init':
|
|
create_migrations_table()
|
|
print("Migrations table initialized")
|
|
else:
|
|
parser.print_help()
|
|
sys.exit(1)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|