【问题标题】:How to setup a MySQL DB with rails in google could SQL如何在谷歌云 SQL 中使用 Rails 设置 MySQL 数据库
【发布时间】:2016-08-21 03:34:04
【问题描述】:

我在谷歌云实例上安装了一个 Rails 应用程序。我想将数据库放在 SQL 实例中以获得额外的性能。但我看不到如何为 Rails 应用程序执行此操作。

我知道您创建了 SQL 实例,启动它,安装 mysql,但是我怎样才能添加数据库和表?手动创建它们不会成为解决方案,因为通常使用运行 rake db:create 和 rake db:migrate 的 Rails 应用程序创建带有表和列的数据库,但这只会使 development.sqlite3 文件不是 mysql db..

我之前没有部署过 Rails 应用程序,所以我认为我遗漏了一些东西。

这是我的 config/databast.yml 文件

default: &default
  adapter: sqlite3
  pool: 5
  timeout: 5000

development:
  <<: *default
  database: db/development.sqlite3

mysql_settings: &mysql_settings
  adapter: mysql2
  encoding: utf8
  pool: 5
  username: root
  password: root
  host: 130.211.71.150
  database: dbname

test:
  <<: *default
  database: db/test.sqlite3

production:
  <<: *default
  database: db/production.sqlite3

我不知道需要做什么才能创建数据库并将表和列迁移到 mysql 数据库中。

【问题讨论】:

    标签: ruby-on-rails sql-server google-cloud-platform google-cloud-sql gcloud


    【解决方案1】:

    在您的 gem 文件中,您可以将 sqlite gem 放在开发/测试块下,您可以将 mysql gem 添加到生产块中。

    在您的 database.yml 文件中,您可以保留当前的开发设置,然后为生产设置添加另一个设置。在这里您可以包含您的 mysql 数据库设置(包括您的 SQL 实例节点的主机和端口)

    当您启动应用程序时,您可以在本地以开发模式启动它以使用 sqlite 进行开发,但在部署时您可以在生产模式下启动以利用 mysql 特定设置。从那里您应该能够使用 db:create db:migrate 等连接到该主机并设置您的数据库。

    这里有一篇很好的文章描述了这个过程。 https://www.digitalocean.com/community/tutorials/scaling-ruby-on-rails-setting-up-a-dedicated-mysql-server-part-2 作为一个团队,我们选择使用 mysql 进行本地开发,因为它更接近于模拟您的产品环境。

    【讨论】:

    • 好的,我应该将整个mysql_settings: &amp;mysql_settings 设置移动到production: 下,并从生产环境中删除database: db/production.sqlite3。或者只是将mysql_settings: &amp;mysql_settings 下的设置移动到production: 下?
    • 我可能会删除 mysql_settings 部分,在您的生产中删除现有行(包括:
    • 感谢您到目前为止的帮助。我只是在等待这个问题得到回答,然后才能查看您的解决方案是否有效stackoverflow.com/questions/36905520/…
    猜你喜欢
    • 2021-05-13
    • 2018-09-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-05
    • 1970-01-01
    • 2020-06-24
    • 2014-02-17
    • 1970-01-01
    相关资源
    最近更新 更多