48 lines
1.2 KiB
Python
Executable File
48 lines
1.2 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
"""Initialize database and create tables."""
|
|
|
|
import argparse
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
# Add project root to path
|
|
project_root = Path(__file__).parent.parent
|
|
sys.path.insert(0, str(project_root))
|
|
|
|
from src.data.database import init_database # noqa: E402
|
|
from src.logging import get_logger # noqa: E402
|
|
|
|
logger = get_logger(__name__)
|
|
|
|
|
|
def main():
|
|
"""Main entry point."""
|
|
parser = argparse.ArgumentParser(description="Initialize database and create tables")
|
|
parser.add_argument(
|
|
"--skip-tables",
|
|
action="store_true",
|
|
help="Skip table creation (useful for testing connection only)",
|
|
)
|
|
parser.add_argument(
|
|
"--verbose",
|
|
"-v",
|
|
action="store_true",
|
|
help="Enable verbose logging",
|
|
)
|
|
|
|
args = parser.parse_args()
|
|
|
|
try:
|
|
logger.info("Initializing database...")
|
|
init_database(create_tables=not args.skip_tables)
|
|
logger.info("Database initialization completed successfully")
|
|
return 0
|
|
|
|
except Exception as e:
|
|
logger.error(f"Database initialization failed: {e}", exc_info=True)
|
|
return 1
|
|
|
|
|
|
if __name__ == "__main__":
|
|
sys.exit(main())
|