天道酬勤,学无止境

sqlalchemy-migrate

值得使用 sqlalchemy-migrate 吗? [关闭](Is it worth using sqlalchemy-migrate ? [closed])

问题 关闭。 这个问题是基于意见的。 它目前不接受答案。 想改善这个问题吗? 更新问题,以便通过编辑这篇文章用事实和引文来回答问题。 7年前关闭。 改进这个问题 我有一个使用 sqlalchemy(在 Pylons 内)的 Web 应用程序。 我需要有效地更改架构,以便能够至少每天更改生产版本,甚至更多,而不会丢失数据。 我在周末玩了一点 sqlalchemy-migrate,我会说它给我留下了不好的印象。 首先,我认为它无法帮助两个数据库引擎之间的迁移; 这可能可以单独使用 sqlalchemy 来完成。 其次,文档似乎不是最新的。 我不得不更改一些命令行选项,例如在每个命令中提供存储库路径,这可能是迁移的错误。 但最糟糕的是“manage.py test ”命令。 它不仅实际上修改了数据库(这一点在文档中明确指出,所以我不能责怪迁移)而且我的第一个迁移脚本只是进行了简单愚蠢的架构迁移,使升级降级的数据库与原始. 但是“manage.py test”只是回答了类似的问题 success ! 也就是说,它甚至不检查模式是否处于一致状态。 那么值得使用迁移吗? 与 S.Lott 提出的与良好实践相关的自己动手方法相比,有什么优势吗? 是否有替代 sqlalchemy-migrate 的替代方案实际上简化了迁移过程,或者我只是想使用 migrate 与先验错误

2021-06-28 09:44:26    分类:技术分享    python   migration   sqlalchemy   data-migration   sqlalchemy-migrate

sqlalchemy postgresql 枚举不会在 db migrate 上创建类型(sqlalchemy postgresql enum does not create type on db migrate)

问题 我在 Python3 下使用 Flask 开发了一个网络应用程序。 我在 db migrate/upgrade 上有 postgresql 枚举类型的问题。 我在模型中添加了一列“状态”: class Banner(db.Model): ... status = db.Column(db.Enum('active', 'inactive', 'archive', name='banner_status')) ... 由python manage.py db migrate生成的python manage.py db migrate是: from alembic import op import sqlalchemy as sa def upgrade(): op.add_column('banner', sa.Column('status', sa.Enum('active', 'inactive', 'archive', name='banner_status'), nullable=True)) def downgrade(): op.drop_column('banner', 'status') 当我执行python manage.py db upgrade出现错误: ... sqlalchemy.exc.ProgrammingError: (psycopg2

2021-06-24 12:30:45    分类:技术分享    flask   sqlalchemy   flask-sqlalchemy   flask-migrate   sqlalchemy-migrate

alembic util 命令错误找不到标识符(alembic util command error can't find identifier)

问题 我正在尝试使用 alembic 来处理我的项目的本地迁移。 它第一次工作,但后来我需要删除文件夹并重新启动。(不要问为什么,我只是不得不)我正在关注本教程并运行命令 python manage.py db init 没关系。 但是当我尝试跑步时 python manage.py db migrate 我收到此错误: alembic.util.CommandError: Can't locate revision identified by '31b8ab83c7d' 现在,似乎 alembic 正在寻找不再存在的修订版。 反正有没有让alembic忘记那个文件? 或者像重新开始比较从 None 到 -> 再次自动生成? 回答1 Alembic 将版本历史存储在您的数据库中。 因此,它使用存储在数据库中的值来搜索修订。 我个人数据库的版本号存储在表alembic_version : mysql> SELECT * FROM alembic_version; +-------------+ | version_num | +-------------+ | c8ad125e063 | +-------------+ 1 row in set (0.00 sec) 提示:如果它是基于 SQL 的数据库,请使用命令SHOW TABLES来查看表。 要解决您的问题,只需使用以下命令:

2021-06-22 15:25:18    分类:技术分享    postgresql   flask-sqlalchemy   alembic   sqlalchemy-migrate

无法完成烧瓶迁移(Cannot complete Flask-Migration)

问题 我已经使用 SQLAlchemy 设置了本地 Postgres 数据库,但无法提交我的第一个条目。 我一直收到这个错误... ProgrammingError: (ProgrammingError) relation "user" does not exist LINE 1: INSERT INTO "user" (name, email, facebook_id, facebook_token... 这些字段似乎与数据库中的字段不匹配。 我正在尝试使用$ python app.py db migrate -migrate 进行迁移,但是,当我运行$ python app.py db migrate此错误... raise util.CommandError("No such revision '%s'" % id_) alembic.util.CommandError: No such revision '39408d6b248d' 最好删除所有内容并从头开始,因为我似乎搞砸了我的数据库设置和/或迁移,但我不知道该怎么做。 更新:数据库现在已经开始工作(我删除并重新创建了它)。 但是,我在尝试运行迁移时仍然遇到相同的错误,结果证明“没有这样的修订版 '39408d6b248d' 指的是从不相关的项目迁移。我重新安装了flask-migrate 但同样的错误。 回答1

2021-06-11 09:13:16    分类:技术分享    python   postgresql   sqlalchemy-migrate   flask-migrate

Flask-Migrate sqlalchemy.exc.NoReferencedTableError:与列关联的外键(Flask-Migrate sqlalchemy.exc.NoReferencedTableError: Foreign key associated with column)

问题 我在具有以下模型的应用程序中使用Flask-Migrate: listpull / models.py from datetime import datetime from listpull import db class Job(db.Model): id = db.Column(db.Integer, primary_key=True) list_type_id = db.Column(db.Integer, db.ForeignKey('listtype.id'), nullable=False) list_type = db.relationship('ListType', backref=db.backref('jobs', lazy='dynamic')) record_count = db.Column(db.Integer, nullable=False) status = db.Column(db.Integer, nullable=False) sf_job_id = db.Column(db.Integer, nullable=False) created_at = db.Column(db.DateTime, nullable=False) compressed_csv = db.Column(db.LargeBinary) def __init__

2021-05-21 16:23:39    分类:技术分享    sqlalchemy   flask   flask-sqlalchemy   sqlalchemy-migrate   flask-migrate

Cannot complete Flask-Migration

I've setup a local Postgres DB with SQLAlchemy and cannot commit my first entry. I keep on getting this error... ProgrammingError: (ProgrammingError) relation "user" does not exist LINE 1: INSERT INTO "user" (name, email, facebook_id, facebook_token... It seems like the fields aren't matching to those in the database. I'm trying to migrate using flask-migrate but, when I run $ python app.py db migrate I get this error... raise util.CommandError("No such revision '%s'" % id_) alembic.util.CommandError: No such revision '39408d6b248d' It may be best to delete everything and start from scratch as

2021-05-17 05:57:39    分类:问答    python   postgresql   sqlalchemy-migrate   flask-migrate

Is it worth using sqlalchemy-migrate ? [closed]

Closed. This question is opinion-based. It is not currently accepting answers. Want to improve this question? Update the question so it can be answered with facts and citations by editing this post. Closed 7 years ago. Improve this question I have a web application using sqlalchemy (within Pylons). I need to effiently change the schema to be able to change the production version at least on a daily basis, maybe more, without losing the data. I have played a little bit with sqlalchemy-migrate over the week-end and I would say that it gave me a bad impression. First I think it cannot help with

2021-05-16 10:23:00    分类:问答    python   migration   sqlalchemy   data-migration   sqlalchemy-migrate

alembic util command error can't find identifier

I'm trying to use alembic to handle local migrations on my project. It worked the first time, but then I needed to delete the folder and restart.(don't ask why, I just had to) I'm following this tutorial and I run the command python manage.py db init And it was ok. But when I try to run python manage.py db migrate I'm getting this error: alembic.util.CommandError: Can't locate revision identified by '31b8ab83c7d' Now, it seems that alembic is looking for a revision that doesn't exists anymore. There is anyway to make alembic forget that file? Or like restart the comparison from None to -> auto

2021-05-15 11:11:49    分类:问答    postgresql   flask-sqlalchemy   alembic   sqlalchemy-migrate

Flask-Migrate sqlalchemy.exc.NoReferencedTableError: Foreign key associated with column

I am using Flask-Migrate in my application, with the following models: listpull/models.py from datetime import datetime from listpull import db class Job(db.Model): id = db.Column(db.Integer, primary_key=True) list_type_id = db.Column(db.Integer, db.ForeignKey('listtype.id'), nullable=False) list_type = db.relationship('ListType', backref=db.backref('jobs', lazy='dynamic')) record_count = db.Column(db.Integer, nullable=False) status = db.Column(db.Integer, nullable=False) sf_job_id = db.Column(db.Integer, nullable=False) created_at = db.Column(db.DateTime, nullable=False) compressed_csv = db

2021-04-29 00:25:13    分类:问答    sqlalchemy   flask   flask-sqlalchemy   sqlalchemy-migrate   flask-migrate

sqlalchemy postgresql enum does not create type on db migrate

I develop a web-app using Flask under Python3. I have a problem with postgresql enum type on db migrate/upgrade. I added a column "status" to model: class Banner(db.Model): ... status = db.Column(db.Enum('active', 'inactive', 'archive', name='banner_status')) ... Generated migration by python manage.py db migrate is: from alembic import op import sqlalchemy as sa def upgrade(): op.add_column('banner', sa.Column('status', sa.Enum('active', 'inactive', 'archive', name='banner_status'), nullable=True)) def downgrade(): op.drop_column('banner', 'status') And when I do python manage.py db upgrade I

2021-04-24 02:58:40    分类:问答    flask   sqlalchemy   flask-sqlalchemy   flask-migrate   sqlalchemy-migrate