首先导出数据库以保留备份,以防万一这没有按预期进行。
af apps
获取应用程序的数据库服务名称
af export-service [service-name]
获取备份的下载 url
接下来将服务隧道传输到您的本地盒子。请注意,这可能有点挑剔,因此如果需要,请尝试几次。
af tunnel [service-name]
- 选择您需要的连接选项。选项“无”将输出可与您最喜欢的数据库工具一起使用的凭据。设置一个到localhost端口10000的数据库连接,并使用提供的数据库名称、用户名和密码。选项“mysql”将使用 mysql cli 自动连接到数据库。关闭终端窗口或退出 af tunnel 命令将删除本地隧道,因此在进行更改时保持其运行。更多关于 af 隧道的信息。
1: none <- this will let you connect using sequel pro
2: mysql <- to make manual tweeks
3: mysqldump
最后根据需要修复数据库结构以使您的应用程序正常工作,然后更新应用程序。
此外,将来您可能会使用像Sequelize这样的 ORM ,它具有非破坏性的数据库迁移,可以在应用程序启动后运行af update
在您的启动文件的早期位置:
// Sudo code. see af online docs on how to get the bound service creds
if (process.env.NODE_ENV == "production") {
var sequelize = new Sequelize(appfog.dbname, appfog.username, appfog.password, ...)
var migratorOptions = { path: process.cwd() + '/migrations' };
var migrator = sequelize.getMigrator(migratorOptions);
migrator.migrate();
}