gpt4 book ai didi

javascript - 更新和/或修复 AppFog 数据库的模式

转载 作者:行者123 更新时间:2023-11-30 18:04:27 26 4
gpt4 key购买 nike

我使用 ExpressJS 在 NodeJS 中创建了一个应用程序,我将我的应用程序托管在 AppFog 上并且它可以运行,但是,我对我的本地版本进行了一些更新,现在我想在 AppFog 上更新我的应用程序但是我遇到了问题,因为我在本地更新了我的模型,现在我无法更新我的 AppFog 数据库...

我该怎么办?删除应用程序并重新更新?我将丢失数据库中的所有数据...

日志:

Error: ER_BAD_FIELD_ERROR: Unknown column 'tags' in 'field list'

最佳答案

首先导出数据库以保留备份,以防万一这没有按预期进行。

  1. af apps 获取应用程序的数据库服务名称
  2. af export-service [service-name] 获取备份的下载 url

接下来将服务隧道传输到您的本地盒子。请注意,这可能有点挑剔,因此如果需要,请尝试几次。

  1. af 隧道 [服务名称]
  2. 选择您需要的连接选项。选项“无”将输出可与您最喜欢的数据库工具一起使用的凭据。设置到 localhost 端口 10000 的数据库连接,并使用提供的数据库名称、用户名和密码。选项“mysql”将使用 mysql cli 自动连接到数据库。关闭终端窗口或退出 af tunnel 命令将丢弃本地隧道,因此在进行更改时保持其运行。 More on af tunnel here .
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();
}

关于javascript - 更新和/或修复 AppFog 数据库的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16159566/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com