【发布时间】:2021-09-17 16:16:21
【问题描述】:
我有一个已部署到 heroku 的 Rails 应用程序,但我不知道如何为生产环境创建一个 mysql 数据库。 (本地环境的mysql数据库已经创建没有问题。)
问题1:
这是heroku配置的一些部分。您可以在下面看到 CLEARDB_DATABASE_URL 和 DATABASE_URL 共享同一个主机,但其他部分不同。哪个应该包含在database.yml的生产部分?
$ heroku config
=== exampleapp Config Vars
CLEARDB_DATABASE_URL:mysql://<username1>:<password1>@<host1>/<database1>?reconnect=true
DATABASE_URL:mysql2://<username2>:<password2>@<host1>/<database2>?reconnect=true
这是我的 database.yml。 (我已经包含了 CLEARDB_DATABASE_URL 的用户名、主机和密码。)
default: &default
pool: 5
timeout: 5000
development:
<<: *default
adapter: mysql2
database: exampleapp
pool: 5
timeout: 5000
username: root
password: xxx
host: localhost
production:
<<: *default
adapter: mysql2
database: exampleapp
username: <username1>
host: <host1>
password: <password1>
问题2:
我已经运行了“heroku run rails db:migrate”,但是没有创建表,即使所有必要的迁移文件都是在我的存储库的 db/migrate 目录下创建的。
当我检查 mysql 的 heroku 生产环境时(这是正确的检查方法吗?),发生了这样的事情;
$ mysql -u <username1> -p -h <host1> //username and host of CLEARDB_DATABASE_URL
$ mysql> show tables;
Empty set (0.18sec)
如果我在这里使用 SQL 从头开始创建表,它们会链接到应用程序吗? (CREATE TABLE db_name.tbl_name (col_name data_type,...) 等)
我有一整套本地环境的数据库,所以如果我可以将带有数据的表移动到生产环境中,那就太好了。有什么方法可以做到吗?
【问题讨论】:
标签: mysql ruby-on-rails heroku