我刚开始学习ROR。并遇到了这个DOUBT 我在 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
创建模型,它将生成迁移以创建表格my_models
中的mydb1
。
我的问题是“如何创建/指定模型,在customdb下创建表?”
我是否需要更改导轨环境或有其他方法吗?我只是好奇。我可以通过在customdb
中创建表并在不迁移的情况下创建模型来手动执行此操作。
答案 0 :(得分:2)
您需要在rails g命令中指定环境,然后它将在customdb数据库中自动创建一个表
RAILS_ENV=custom rails generate model MyModel
答案 1 :(得分:0)
我无法理解您为什么要为特定数据库生成模型。
您所要做的就是生成标准模型并将此行establish_connection :custom
添加到其中。此模型应与您的自定义数据库一起使用,您可以在添加establish_connection
之后像往常一样运行迁移。
答案 2 :(得分:0)
我认为这不是环境问题。
This is my pattern。简而言之,我创建了一个抽象模型,(在AR和你的其他db模型之间,我指定了这个事实。从它派生的所有模型都指向另一个db(我的要点中的 public_database )。参数存储在一个额外的.yml文件中( config / database_public.yml )
在多个数据库上运行rake任务比较困难,但在要点的第二部分,我找到了一种创建任务的方法,这些任务可以在两个数据库上分别运行。