【问题标题】:Sqlalchemy & Pylons: Adding new tables to a previously defined database?Sqlalchemy & Pylons:向先前定义的数据库添加新表?
【发布时间】:2011-09-29 23:52:05
【问题描述】:

假设我通过运行在 Pylons 中创建表

paster setup-app development.ini

它将生成一个数据库文件(即 mydatabase.db)。现在,假设稍后我将模型更改为具有更多表和/或列,我将如何确保旧数据仍被保留和访问?我需要迁移旧数据库吗?这一切是如何运作的?

【问题讨论】:

    标签: mysql database database-design sqlalchemy pylons


    【解决方案1】:

    只要您添加新表,它就可以无缝运行,即它只是创建新表而不触及现有表。但是,如果您更改现有表架构(例如添加新列),则需要手动更新数据库架构或删除/重命名该表并运行 paster setup-app development.ini 以重新创建它。

    通常我重命名修改后的表,运行 setup-app 以创建一个新的干净表并使用类似的内容复制数据:

    INSERT INTO some_table (col1, col2, col3) SELECT (col1, col2, col3) FROM some_table_old

    【讨论】:

    • 只是补充,可以使用SqlAlchemy-migrate自动更新。
    • 我同意 renatopp sqlalchemy-migrate 是一个更好的解决方案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-12
    • 2018-02-27
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    • 2010-12-18
    相关资源
    最近更新 更多