如何为不同的数据库创建模型?
How to create model for different databases?
我刚开始学习ROR。遇到了这个疑问。
我在 database.yml 文件中定义了多个数据库,如下所示:
development:
adapter: mysql2
encoding: utf8
reconnect: true
database: mydb1
username: root
password: root
host: localhost
custom:
adapter: mysql2
encoding: utf8
reconnect: true
database: customdb
username: root
password: root
host: localhost
现在,如果我使用 rails generate model MyModel
创建模型,它将生成迁移以在 mydb1
.
中创建 table - my_models
我的问题是"How can I create/specify a model, that to create a table under customdb?"
我需要更改 rails 环境还是有其他方法?我只是好奇。我可以通过在 customdb
中创建一个 table 并创建一个没有迁移的模型来手动完成此操作。
您需要在rails g命令中指定环境,然后它将在customdb数据库
中自动创建一个table
RAILS_ENV=custom rails generate model MyModel
我不明白你为什么要为特定的数据库生成模型。
您所要做的就是生成标准模型并将此行 establish_connection :custom
添加到其中。此模型应与您的自定义数据库一起使用,您可以在添加 establish_connection
.
后照常 运行 迁移
我觉得不是环境的问题。
This is my pattern。简而言之,我创建了一个抽象模型,(在 AR 和您的其他数据库模型之间,我在其中指定了这个事实。从它派生的所有模型都指向另一个数据库(public_database 在我的要点中)。连接参数存储在一个额外的 .yml 文件中(config/database_public.yml)
运行 多个数据库上的 rake 任务更难,但在要点的第二部分,我找到了一种方法来创建在两个数据库上单独运行的任务。
我刚开始学习ROR。遇到了这个疑问。
我在 database.yml 文件中定义了多个数据库,如下所示:
development:
adapter: mysql2
encoding: utf8
reconnect: true
database: mydb1
username: root
password: root
host: localhost
custom:
adapter: mysql2
encoding: utf8
reconnect: true
database: customdb
username: root
password: root
host: localhost
现在,如果我使用 rails generate model MyModel
创建模型,它将生成迁移以在 mydb1
.
my_models
我的问题是"How can I create/specify a model, that to create a table under customdb?"
我需要更改 rails 环境还是有其他方法?我只是好奇。我可以通过在 customdb
中创建一个 table 并创建一个没有迁移的模型来手动完成此操作。
您需要在rails g命令中指定环境,然后它将在customdb数据库
中自动创建一个tableRAILS_ENV=custom rails generate model MyModel
我不明白你为什么要为特定的数据库生成模型。
您所要做的就是生成标准模型并将此行 establish_connection :custom
添加到其中。此模型应与您的自定义数据库一起使用,您可以在添加 establish_connection
.
我觉得不是环境的问题。
This is my pattern。简而言之,我创建了一个抽象模型,(在 AR 和您的其他数据库模型之间,我在其中指定了这个事实。从它派生的所有模型都指向另一个数据库(public_database 在我的要点中)。连接参数存储在一个额外的 .yml 文件中(config/database_public.yml)
运行 多个数据库上的 rake 任务更难,但在要点的第二部分,我找到了一种方法来创建在两个数据库上单独运行的任务。