【问题标题】:The best way to create a new table in Sqlite using Ruby on Rails 2使用 Ruby on Rails 2 在 Sqlite 中创建新表的最佳方法
【发布时间】:2010-09-17 01:01:56
【问题描述】:

那么在 Rails 2 的 Sqlite 数据库中创建新表的最佳方法是什么。我使用 rake db:migrate 命令创建了数据库。所以我应该编写单独的 sql 脚本来创建数据库还是以某种方式使用 rake。我不需要脚手架。

【问题讨论】:

    标签: ruby-on-rails sqlite rake


    【解决方案1】:

    基本上使用迁移。

    http://wiki.rubyonrails.org/rails/pages/understandingmigrationshttp://wiki.rubyonrails.org/rails/pages/UsingMigrations 提供了有关如何使用迁移的一些有用帮助。 http://dizzy.co.uk/ruby_on_rails/cheatsheets/rails-migrations 也提供了我使用的一个很好的备忘单。

    基本上,迁移使用 ruby​​ 代码为您创建数据库表。使用漂亮的 ruby​​ 代码而不是 SQL DDL 来做这件事要容易得多(至少在我看来)——它还自动为你做各种事情(比如根据 rails 的需要将id 字段添加到你的所有表中)。然后,您可以使用 rake 任务将迁移实际应用到您的数据库。迁移给您带来的另一个主要优势是它们是可逆的 - 因此您的数据库是版本化的,您可以轻松地从一个版本跳转到另一个版本。

    【讨论】:

    【解决方案2】:

    尽量避免编写 CREATE/ALTER 表脚本并改用 ActiveRecord 迁移。我想到了几个原因:

    • 便携性:更容易让 AR 处理跨平台风格 差异
    • 变更控制:您的 迁移可以管理 两个方向与 VERSION= 选项,不容易 用 SQL 做
    • 这是 Rails 的方式: 遵循 Rails 约定,除非 你有一个令人信服的理由不 这样做
    • 简单性:使用迁移时无需担心 id 和 timestamp 列,这样在使用 SQL 时无需记住它们

    【讨论】:

      【解决方案3】:

      如果您不使用脚手架,那么您应该使用script/generate migration 为每个表创建一个迁移文件。无需使用 sql 脚本。创建一些迁移后,您可以使用 rake db:migrate 将它们应用到您的数据库。

      【讨论】:

        猜你喜欢
        • 2013-04-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-21
        相关资源
        最近更新 更多