如何将我现有的 rails 应用程序移动到 heroku 上?(sqlite to postgres)



我有一个现有的Ruby on Rails应用程序,它已经加载了数据。

我使用了默认的SQLite数据库设置,因此这是我所有数据所在的位置,但是我需要所有数据都进入heroku上的Postgres数据库。

我该怎么做?

10 分钟 从本地SQLite移动到Heroku Postgres

。 --

在此过程中将本地开发人员更新为帖子 --

这是假设你在sqlite中有一个开发数据库,并且你想将结构和数据移动到heroku。 您将首先将本地环境更改为 postgres,然后将其全部向上移动。

为什么要改变?应始终让开发环境反映生产环境。 使用 Postgres 是 heroku 的默认方法。

您需要首先使用具有您用户名的用户在本地安装和配置 Postgres。


所需软件:postgresql,pgloader,heroku-cli


步骤

在开发环境中从 SQLite 迁移到 Postgres,在开发环境中

  1. 安装 Heroku/PGloader/Postgres,并确保 PostgreSQL 在您的系统上运行
  2. 备份 SQLite - 复制开发.sql到development_old.sql
  3. gem 'pg'添加到宝石文件的主要部分
  4. 捆绑安装
  5. Update config/database.yml(参见下面的示例(
  6. 耙子数据库:设置
  7. CD [应用程序根目录]
  8. 用数据加载 Postgres 数据库 -pgloader ./db/development.sqlite3 postgresql:///[name of postgres dev db]
  9. 删除gem 'sqlite3'
  10. 捆绑安装
  11. 启动服务器 -rails server
  12. 通过访问本地主机的应用程序进行测试:3000

在 heroku 上设置新应用程序

按照 heroku 的这些说明进行操作

将数据移动到 heroku

  1. 查找 Heroku 数据库信息 -heroku pg:info
  2. 擦除和重置远程数据库 -heroku pg:reset DATABASE_URL --app [name of app]
  3. 将本地数据推送到Heroku -heroku pg:push [name of postgres dev db] DATABASE_URL --app [name of app]

注意:如果该数据库的行数大于 10k,则还需要升级到 heroku 上的爱好基础层

将英雄升级到爱好等级基础

  1. 创建新层 - 'Heroku 插件:创建 Heroku-PostgreSQL:Hobby-Basic --应用 [应用程序名称]
  2. 获取新的数据库 URL -heroku pg:info
  3. 打开维护 -heroku maintenance:on --app [name of app]
  4. 复制数据 -heroku pg:copy DATABASE_URL [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
  5. 提升新数据库 -heroku pg:promote [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
  6. 关闭维护
  7. 通过访问 Heroku 应用程序进行测试

如果您遇到问题或边缘情况,这里有一些资源可以提供帮助。

资源:

  • https://pgloader.io
  • Postgres install docs
  • 希罗库新导轨安装
  • 希罗库 CLI 信息
  • 使用 Heroku CLI

database_sample.yml

default: &default
adapter: postgresql
encoding: unicode
host: localhost
port: 5432
# For details on connection pooling, see Rails configuration guide
# http://guides.rubyonrails.org/configuring.html#database-pooling
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
timeout: 5000
development:
<<: *default
database: [name of app]_dev
test:
<<: *default
database: [name of app]_test
staging:
<<: *default
database: [name of app]
production:
<<: *default
database: [name of app]

嘿,伙计,你在下面的链接中拥有你需要的一切

如何从SQLite更改为PostgreSQL并在heroku上部署

如果您还有疑问,请告诉我 问候

相关内容

  • 没有找到相关文章

最新更新