【问题标题】:How do I prevent Heroku from deleting my Postgress database when pushing to github?推送到 github 时如何防止 Heroku 删除我的 Postgres 数据库?
【发布时间】:2021-05-03 08:38:39
【问题描述】:

每当我将更改推送到 Github 并且我的后端在 Heroku 上重建自身时,它都会重置/删除 Postgress 数据库。我怎样才能防止这种情况发生?

【问题讨论】:

  • 这不是标准行为,所以它在您的代码或部署过程中。例如,您是否在部署中运行数据库迁移?
  • 感谢您的回复!不,我没有运行数据库迁移。至少我不知道。对编码来说还是很新的。有没有一种简单的方法可以检查我是否正在运行迁移?
  • 如何构建/部署代码?您使用的是什么语言和框架?您的部署过程是否包括数据库的配置,或者您是否在 Heroku 控制台中手动设置?
  • 如果您分享指向您的仓库的链接(如果它是公开的)也会有所帮助
  • 感谢您与 ceejayoz 一起思考!我解决了这个问题。在将我的应用程序投入生产之前,我使用的是 Sqlite。好像我还在用它。一旦我打开sqlite,问题就不会再发生了!

标签: database postgresql github heroku reset


【解决方案1】:

我解决了这个问题。在将我的应用程序投入生产之前,我使用的是 Sqlite。好像我还在用它。一旦我打开sqlite,问题就不会再发生了!

工作代码:

const parse = require('pg-connection-string').parse;

module.exports = ({ env }) => {

  if(env('NODE_ENV') === 'production') {
    const config = parse(process.env.DATABASE_URL)
    return {
      defaultConnection: 'default',
      connections: {
        default: {
          connector: 'bookshelf',
          settings: {
            client: 'postgres',
            host: config.host,
            port: config.port,
            database: config.database,
            username: config.user,
            password: config.password
          },
          options: {
            ssl: false
          }
        }
      }
    }
  }

  return {
    // defaultConnection: 'default',
    // connections: {
    //   default: {
    //     connector: 'bookshelf',
    //     settings: {
    //       client: 'sqlite',
    //       filename: env('DATABASE_FILENAME', '.tmp/data.db'),
    //     },
    //     options: {
    //       useNullAsDefault: true,
    //     },
    //   },
    // },
  }
};

【讨论】:

    猜你喜欢
    • 2013-10-21
    • 2019-07-04
    • 1970-01-01
    • 2020-12-30
    • 2018-02-19
    • 2020-01-21
    • 2014-02-13
    • 2013-10-29
    • 1970-01-01
    相关资源
    最近更新 更多