2016-10-12 6 views
1

私は既にFlaskで開発された新しいプロジェクトに取り組んでいます。私はFlaskの知識は持っていません。私の会社は私にDjangoの経験があるので私にプロジェクトを与えました。フラスコの最初の移動を行う方法は?

これは、プロジェクトの構造である:

models 
    -db.py 
    -model1.py 
    -model2.py 
    - .. 
static 
    - .. 
templates 
    - .. 
myapp.py 

myapp.pyは、ホーム・ページのように他のすべての機能を備えたすべての設定ファイルとサーバーの初期化コードが含まれており、ページをサインアップしてください。

myapp.pyを実行すると、正常に実行されますが、テーブルは自動的に作成されません(最初の移行が完了していることがわかりました)。私はそれをどうやって行うのか分かりません。

このプロジェクトでは、postgresqlとSQLAlchemyという形式のflask_sqlalchemyモジュールを使用しています。

db.pyファイル:

すべてのモデルが持っている
from flask_sqlalchemy import SQLAlchemy 

db = SQLAlchemy() 

from db import db

myappファイル:

# =================================================================== 
# SQL ALCHEMY 
# =================================================================== 

if (SERVER_MODE == RUN_MODE.PRODUCTION): 
    app.config['SQLALCHEMY_DATABASE_URI'] = (
     os.environ["DATABASE_URL"] 
    ) 
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False 
else: 
    app.config['SQLALCHEMY_DATABASE_URI'] = (
     'postgresql://' + 
     'creathiveswebapp:creathives' + 
     '@' + 
     'localhost/cl_creathives_pgdb' 
    ) 
    app.config['SQLALCHEMY_ECHO'] = False 
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True 

db.init_app(app) 

... 
# =================================================================== 
# START SERVER 
# =================================================================== 

if __name__ == "__main__": 
    port = int(os.environ.get('PORT', 5000)) 
    if (SERVER_MODE == RUN_MODE.PRODUCTION): 
     # TODO: Turn off debug 
     app.run(host='0.0.0.0', port=port, debug=True) 
    else: 
     app.run(host='0.0.0.0') 

最初の移行を行ってテーブルを作成する方法

python manage.py db migrate 

およびデータベースの移行設定のため、このような何か試してみてください:このコマンド

答えて

1

使用、さらに知識を

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.

+0

こんにちはPrakhar答えてくれてありがとう。私はコードを実装しましたが、 "python manage.py db migrate"を実行すると "File" migrations/env.py "23行目が target_metadata = current_app.extensions ['migrate']になります。db.metadata AttributeError: 'module'オブジェクトには属性 'metadata'がありません。 –

関連する問題