适用于数据迁移的解决方案

时间:2014-01-08 06:30:24

标签: python web2py

在迁移数据库时遇到问题使用了fake_Migration = false并删除了mysql的数据库,问题是我不想删除数据库,因为它中有一些重要的数据,我希望新的字段应该添加到表中而没有丢失数据并且不使用fake_Migration

1 个答案:

答案 0 :(得分:1)

尝试以下方法:

  1. 备份MySQL数据库+您当地的“数据库”文件夹
  2. 从本地“数据库”文件夹中删除所有文件
  3. db = DAL(...., fake_migrate_all=True, migrate=False) #This will not perform a real migration but will recreate metadata in your local 'databases' folder
  4. 从python shell运行python web2py.py -M -S <yourapp>
  5. 退出python shell
  6. 在模型中添加新表/字段
  7. db = DAL(...., fake_migrate_all=False, migrate=True) #To migrate your database structure with the new fields in your model
  8. 运行Web2py,检查您的应用是否正常
  9. 一切正常后,为了提高效率,您应该将db = DAL(...., fake_migrate_all=False, migrate=True)更改为db = DAL(...., fake_migrate_all=False, migrate=False)并最终添加lazy_tables=True参数。更多信息:http://web2py.com/books/default/chapter/29/13/deployment-recipes#Efficiency-tricks