gpt4 book ai didi

mysql - 如何将我当前的大型 Mysql 数据库转换为 Rails 4.2

转载 作者:行者123 更新时间:2023-11-28 23:36:43 24 4
gpt4 key购买 nike

我有一个大型 Mysql 数据库,我想在 Rails 应用程序中快速使用它,但我不想为我必须编写的所有模型编写所有数据库模式..有没有快速的方法来所有模型和表格都快速设置了吗?

非常感谢。

最佳答案

是的,这是可能的,方法如下:

  1. 确保您在 config/database.yml

    中正确配置了数据库连接
  2. 运行 rake db:schema:dump

侧面提示:运行 rake -T db:schema,您将获得与数据库模式任务相关的所有可用命令的列表:

rake db:schema:cache:clear  # Clear a db/schema_cache.dump file
rake db:schema:cache:dump # Create a db/schema_cache.dump file
rake db:schema:dump # Create a db/schema.rb file that is portable against any DB supported by AR
rake db:schema:load # Load a schema.rb file into the database

然而,生成模型是另一回事,特别是如果您现有的数据库不遵循 Rails 的命名约定。

有一些像 rmre 这样的 gem 正是为此而设计的,但似乎没有维护。

如果您的遗留数据库不是一个怪物,您可以自己快速创建模型 - 这里的技巧是不创建任何迁移,即:

rails g model YourModel --migration=false

然后你必须调整一些关键属性,如表名和主键,以适应 ActiveRecord 的命名约定,可以按如下方式完成:

class YourModel < ActiveRecord::Base
self.table_name = 'a_legacy_table_name'
self.primary_key = 'primary_key_column_name'

belongs_to :other_model,
foreign_key: 'foreign_key_on_other_table'

has_many :other_models,
foreign_key: 'foreign_key_in_this_table',
primary_key: 'primary_key_on_other_table'
end

关于mysql - 如何将我当前的大型 Mysql 数据库转换为 Rails 4.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35567398/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com