Kaynağa Gözat

数据库初始化脚本

zhangnaiwen 2 yıl önce
ebeveyn
işleme
0911f2300f
4 değiştirilmiş dosya ile 42 ekleme ve 1 silme
  1. 1 1
      Dockerfile
  2. 4 0
      scripts/built.sh
  3. 3 0
      scripts/init_db.sh
  4. 34 0
      src/manage.py

+ 1 - 1
Dockerfile

@@ -1,4 +1,4 @@
-FROM operation_management_center_base:latest
+FROM operation_management_center_base:1.0.0
 
 COPY ./conf/uwsgi.ini /work/operation_management_center/conf/uwsgi.ini
 COPY ./src /work/operation_management_center/src

+ 4 - 0
scripts/built.sh

@@ -0,0 +1,4 @@
+#!/bin/bash
+
+docker build -f base/Dockerfile -t operation_management_center_base:1.0.0 .
+docker build -t operation_management_center:1.0.0 .

+ 3 - 0
scripts/init_db.sh

@@ -0,0 +1,3 @@
+#!/bin/bash
+
+docker exec -it operation_management_center  bash -c "export PYTHONPATH=/work/operation_management_center/src;export FLASK_APP=manage.py;export FLASK_ENV=development;flask dbinit"

+ 34 - 0
src/manage.py

@@ -0,0 +1,34 @@
+from sqlalchemy import create_engine
+from sqlalchemy_utils import database_exists, create_database
+
+from app import Config
+from app.modle import Base
+from app.webapp import application
+
+
+@application.cli.command('dbinit')
+def dbinit():
+    """初始化数据库,存入任务模板参数"""
+
+    print('initialize db ...')
+
+    config = Config()
+
+    uri = f'postgresql+psycopg2://{config.database.USER}:{config.database.PASSWORD}@{config.database.HOST}:{config.database.PORT}/{config.database.DB}'
+
+    engine = create_engine(uri)
+
+    # 判断数据库是否存在,如果不存在则创建一个
+    if not database_exists(engine.url):
+        create_database(engine.url)
+
+    Base.metadata.create_all(engine)
+
+    print('initialize db ok ...\n')
+
+    print('Please Enter Ctrl+C to exit ...')
+
+
+@application.cli.command('ceshi')
+def ceshi():
+    print('this is a test')