rails 3:如何为现有数据库表生成模型
我已经将我的database.yml配置为指向我现有的mysql数据库
我怎样才能从中生成模型?
rails generate model existing_table_name
只提供一个emty模型..
Rails模型不会显示您的字段,但您仍然可以使用它们。 请尝试以下方法。 假设您有一个名为ModelName的模型和一个名为“name”的字段,请启动Rails控制台并键入:
ModelName.find_by_name('foo')
给定DB中存在的名称,您应该看到结果。
Rails不会推断关系,但如果您的数据库遵循Rails约定,则可以轻松添加它们。
更新
我注意到这种特殊的缺乏显性(“魔法”)是Rails的新手混淆的根源。 您始终可以查看schema.rb
以在一个位置查看模型和所有字段。 此外,如果您希望在模型文件中查看每个模型的模式,则可以使用annotate_models gem,它将db模式放在模型文件顶部的注释中。
你可以尝试Rmre 。 它可以为现有模式创建模型,并尝试基于外键信息创建所有关系。
你的答案是:
$ rake db:schema:dump
这将设置一个新的db/schema.db
来创建数据库的模式。
ActiveRecord不解析架构定义。 它要求DBM表格defs并动态计算出字段。
如果要通过迁移修改表,则使用模式非常有用。 Schema Dumping and You
将帮助您转储它以用作构建迁移的参考。
ActiveRecord对表命名做了一些假设,并期望id
字段是主键,序列号作为类型。 迁移可以帮助您重构表和/或字段名和类型,但您可以通过DBM的命令行执行相同的操作。 你不必真正遵循ActiveRecord的风格,但这样做有助于避免奇怪的错误,让AR推断事情,让你的生活更轻松。
可以试试Magic Model Generator
看看rare_map gem。 https://github.com/wnameless/rare_map它适用于Rail 3和4。