在Heroku中为一个Rails 3.1 app使用多个数据库,您需要遵循以下步骤:
在您的Gemfile中添加所需的数据库适配器。例如,如果您想使用PostgreSQL和MySQL,请添加以下行:
gem 'pg'
gem 'mysql2'
然后运行bundle install
以安装这些gem。
在Heroku中创建两个数据库:
heroku addons:create heroku-postgresql:hobby-dev
heroku addons:create jawsdb-maria:kitefin
这将创建一个PostgreSQL数据库和一个MySQL数据库。
在您的Rails应用程序中,创建一个名为config/database.yml
的文件,其中包含以下内容:
development:
adapter: postgresql
encoding: unicode
database: your_postgres_database_name
pool: 5
username: your_postgres_username
password: your_postgres_password
host: your_postgres_host
port: your_postgres_port
mysql:
adapter: mysql2
encoding: unicode
database: your_mysql_database_name
pool: 5
username: your_mysql_username
password: your_mysql_password
host: your_mysql_host
port: your_mysql_port
请确保使用您在上一步中创建的数据库的正确凭据填充这些值。
在您的Rails应用程序中,为每个数据库创建一个单独的模型。例如,如果您有一个名为User
的模型,您可以创建一个名为UserPostgre
的模型,该模型将使用PostgreSQL数据库,并创建一个名为UserMySQL
的模型,该模型将使用MySQL数据库。
在这些模型中,指定要使用的数据库连接:
class UserPostgre< ActiveRecord::Base
establish_connection :development
end
class UserMySQL< ActiveRecord::Base
establish_connection :mysql
end
现在,您可以在应用程序中使用这两个数据库。例如,您可以在控制器中使用UserPostgre
和UserMySQL
模型,如下所示:
def index
@users_postgresql = UserPostgre.all
@users_mysql = UserMySQL.all
end
这将从两个不同的数据库中检索用户数据,并将它们传递给视图进行显示。
总结:
通过遵循这些步骤,您可以在Heroku中为Rails 3.1应用程序设置和使用多个数据库。这种方法可以让您根据需要将数据存储在不同类型的数据库中,以满足您的应用程序需求。
领取专属 10元无门槛券
手把手带您无忧上云