Flask SQLAlchemy alembicでtable、columnを作成したい。ついでにherokuにデプロイしたい
# sqlalchemy.url = driver://user:pass@localhost/dbname sqlalchemy.url = sqlite:///test.db
alebmic.initを正しいパスに変更する。
当たり前であるがこれを忘れて死んでいた。
Tutorial — Alembic 0.9.6 documentation
じゃあ、これをデプロイしようとして意外とはまった
floder構成は
+alembic env.py +versions +???.py app.py config.py alembic.ini
みたいな感じ
env.py
import app #app.pyから呼んでくる # #~そのまま~ # def run_migrations_online(): #下記を加える alembic_config = config.get_section(config.config_ini_section) alembic_config['sqlalchemy.url'] = app.app.config['SQLALCHEMY_DATABASE_URI'] connectable = engine_from_config( alembic_config, prefix='sqlalchemy.', poolclass=pool.NullPool) #上記を加える ''' #既存のコード connectable = engine_from_config( config.get_section(config.config_ini_section), prefix='sqlalchemy.', poolclass=pool.NullPool) ''' with connectable.connect() as connection: context.configure( connection=connection, target_metadata=target_metadata ) with context.begin_transaction(): context.run_migrations()
stackoverflow.com
フォルダ構成が違うだけでこれが参考になる