如何在烧瓶中进行首次迁移?

时间:2016-10-12 05:48:22

标签: python flask flask-sqlalchemy

我正在开发一个已在Flask中开发的新项目,我不了解Flask。我的公司给了我项目,因为我有Django的经验。





这是项目的结构:




 <代码>模型&#XA; -db.py&#XA; -model1.py&#XA; -model2.py&#XA; -  ..&#xA; static&#xA; -  ..&#xA; templates&#xA; -  ..&#xA; myapp.py&#xA;  
&#xA;&#xA;

myapp.py 包含所有配置文件和服务器初始化代码具有所有其他功能,例如主页和注册页面的功能。

&#xA;&#xA;

当我运行 myapp.py 时,它运行正常,但是表格不是自动创建的(我发现必须首先进行迁移)。我不知道该怎么做。

&#xA;&#xA;

该项目使用postgresql和SQLAlchemy形式flask_sqlalchemy Modules。

&#xA;&#xA;

db.py 文件:

&#xA;&#xA;
 来自flask_sqlalchemy import SQLAlchemy&#xA;&#xA; db = SQLAlchemy()&#xA ;  
&#xA;&#xA;

所有模型都有来自db import db的

&#xA;&#xA;

< code> myapp file:

&#xA;&#xA;
 #====================== =============================================&#XA;# SQL ALCHEMY&#xA;#============================================ =======================&#xA;&#xA; if(SERVER_MODE == RUN_MODE.PRODUCTION):&#xA; app.config ['SQLALCHEMY_DATABASE_URI'] =(&#xA; os.environ [“DATABASE_URL”]&#xA;)&#xA; app.config ['SQLALCHEMY_TRACK_MODIFICATIONS'] = False&#xA;否则:&#xA; app.config ['SQLALCHEMY_DATABASE_URI'] =(&#xA;'postgresql://'+&#xA;'creathiveswebapp:creathives'+&#xA;'@'+&#xA;'localhost / cl_creathives_pgdb'&# xA;)&#xA; app.config ['SQLALCHEMY_ECHO'] = False&#xA; app.config ['SQLALCHEMY_TRACK_MODIFICATIONS'] = True&#xA;&#xA; db.init_app(app)&#xA;  
&#xA;&#xA;

&#xA;&#xA;
  ...&#xA;#=========================== ========================================&#xA; #START SERVER&#xA; #================================================= ==================&#xA;&#xA; if __name__ ==“__ main __”:&#xA; port = int(os.environ.get('PORT',5000))&#xA; if(SERVER_MODE == RUN_MODE.PRODUCTION):&#xA; #TODO:关闭debug&#xA; app.run(host ='0.0.0.0',port = port,debug = True)&#xA;其他:&#XA; app.run(host ='0.0.0.0')&#xA;  
&#xA;&#xA;

如何进行首次迁移以创建表格。

&#XA;

2 个答案:

答案 0 :(得分:2)

使用此命令:

    python manage.py db migrate

对于数据库迁移设置,请尝试以下操作:

    import os
    from flask.ext.script import Manager
    from flask.ext.migrate import Migrate, MigrateCommand

    from app import app, db


    app.config.from_object(os.environ['APP_SETTINGS'])

    migrate = Migrate(app, db)
    manager = Manager(app)

    manager.add_command('db', MigrateCommand)


    if __name__ == '__main__':
        manager.run()

如需进一步了解,请Read from here.

答案 1 :(得分:0)

import os
from flask.ext.script import Manager
from flask.ext.migrate import Migrate, MigrateCommand

from app import app, db


app.config.from_object(os.environ['APP_SETTINGS'])

migrate = Migrate(app, db)
manager = Manager(app)

manager.add_command('db', MigrateCommand)


if __name__ == '__main__':
    app.run()

使用命令: flask db migration -m'注释' 烧瓶数据库升级