我目前正在学习使用Ruby on Rails编写代码,但我已经在早期的QA工作中使用过这个框架。此时我已经了解了ActiveRecord的一些内容,使用rake db:migrate等执行迁移。我还管理了如何为Microsoft SQL Server安装适配器并运行一些rake任务,如rake test
或rake db:migrate
(db:create不能与当前适配器一起使用,但那是另一个故事)我已经知道MS SQL Server与RoR不兼容,但我们已经在生产中使用了我们使用的RDBMS。
我是否应该忽略迁移文件,并且不执行rake db:migrate或生产中的任何内容?什么是最好的方法?
答案 0 :(得分:2)
我们运行一种带有rails的遗留数据库。一些东西是通过SQL添加的,其他东西是通过迁移添加的。基本上,你的问题的答案是是,你甚至可以运行迁移等以便后续的数据库维护。但是要开始,你只需要在给定模型时告诉rails在哪里寻找表。
来自Active Record Basics: 4 Overriding the Naming Conventions:
如果您需要遵循不同的命名约定或需要将Rails应用程序与遗留数据库一起使用,该怎么办?没问题,您可以轻松覆盖默认约定。
您可以使用
class Product < ActiveRecord::Base self.table_name = "my_products" end
方法指定应使用的表名:
ActiveRecord::Base.primary_key= method
...
还可以使用
class Product < ActiveRecord::Base self.primary_key = "product_id" end
覆盖应该用作表主键的列:
{{1}}