如何迁移到另一个数据库
待正式公布 - 从 Jam.py v5 起被更改。
您可以将数据迁移到另一个数据库。
例如,您使用 SQLite 数据库开发了项目,现在想要把数据库迁移到 Postgres 。
要执行此操作,请按照以下步骤操作:
创建一个空的 Postgres 数据库
使用此数据库创建一个新项目
在 SQLite 项目的应用程序构建器中,通过点击 导出 按钮,将元数据导出为一个 zip 文件。
将元数据导入到新项目中。Web 应用程序将在 Postgres 数据库中创建数据库结构。
使用任务的 copy_database 方法 将数据从 SQLite 复制到 Postgres 数据库:
在 项目\任务(Project\Task) 中创建以下服务器模块函数(调整下面的数据库路径为正确的路径):
from jam.db.db_modules import SQLITE def copy_db(task): task.copy_database(SQLITE, '/home/work/demo/demo.sqlite')
然后,通过以下方式之一执行它:
在 on_created 事件处理程序中调用此函数:
from jam.db.db_modules import SQLITE def copy_db(task): task.copy_database(SQLITE, '/home/work/demo/demo.sqlite') def on_created(task): copy_db(task)
在某个表单中创建一个按钮, 并使用任务的 server 方法执行它:
function on_view_form_created(item) { item.add_view_button('Copy DB').click(function() { task.server('copy_db') }); }
或从浏览器的调试控制台运行:
task.server('copy_db')
在此过程完成后立即删除使用的代码。
备注
如果当前数据库有外键,则不能迁移到 SQLite 数据库。