如何更改 Rails 应用程序数据?

2024-02-19

我看过很多关于 ActiveRecord 迁移以及是否应该使用它们来更改应用程序中的数据的讨论,有些人说是,有些人说不。我的问题是,如果您不使用迁移来执行此操作,那么您使用什么?只是你写的另一个脚本?

我正在寻求有关替代方法的建议,以及为什么它们可能比仅仅使用迁移更好。


如果您使用提供的,就会出现一个问题

rake db:reset

and

rake db:schema:load

任务,其中使用schema.rb作为设置数据库的基础。所以没有数据被加载并且你被卡住了。

In 使用 Rails 进行敏捷 Web 开发,第三版 http://www.pragprog.com/titles/rails3/agile-web-development-with-rails-third-edition,你应该得到它(如果 Ruby 书是“Pickaxe”书,这应该是“Hammock”书,顺便说一句?)如果你还没有这样做,DHH 说:

...迁移并不是真正的目的 携带种子数据。它们太暂时了 本质上是可靠地做到这一点。 移民是为了带你离开 模式的一个版本到下一个版本, 不创建新的模式 从头开始——我们有 db/schema.rb 文件 为了那个原因。

所以,一旦你真正 开始真正的应用程序, 人们不会早早地跑你 当他们设置时迁移 应用。他们将从 无论存储在什么版本 db/schema.rb 并忽略所有这些 以前的迁移。这意味着 迁移创建的任何数据 永远不会将其放入数据库,所以 你不能依赖它。

有许多 获得更多的替代方法 永久种子数据。最简单的是 可能只是为了创建一个新文件 db/seed.rb,其中包含那些 Product.create 调用将执行以下操作 设置。然后可以调用该文件 rake db:schema:load 创建后 初始架构。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何更改 Rails 应用程序数据? 的相关文章

随机推荐

  • C++模板函数问题

    我正在尝试编写一个翻译函数 它将值和一系列查找表作为参数 查找表具有以下声明 template lt typename fromType typename toType gt struct DataTranslator 我可以让它与以下翻译
  • 我应该首先检查对象是否为 null 还是其次? [复制]

    这个问题在这里已经有答案了 举例来说 我创建了一只鸭子 Duck myDuck DuckFactory CreateDuck 过去我总是检查 myDuck 是否为空 if myDuck null Do stuff 我最近查看了一些首先检查
  • Javascript:在进入第三个函数之前测试两个异步调用?

    因此 我有两个异步调用发送到 Web 服务 我的第三种方法都需要它们 你们建议如何这样做 我尝试在我的一个方法中设置一个标志 另一个方法调用第三个方法并发送一些数据 所以在我的第三个方法中我尝试了这个 thirdMethod functio
  • Styled-Components:指定父母悬停时孩子的样式

    我有一个简单的组件 这是它的 2 个版本 带和不带样式组件 没有样式组件 div div div div container width 100px height 100px kid width 20px height 20px conta
  • Python:使用多个分割分隔符分割文件

    我有多个 CSV 文件 需要循环解析它们以收集信息 问题是 虽然它们的格式相同 但有些由 t 分隔 另一些则由 分隔 之后 我想删除字符串周围的双引号 python 可以通过多个可能的分隔符进行分割吗 目前 我可以使用以下方法将行拆分为一个
  • jQuery AJAX 没有错误或成功触发

    我有一个简单的联系表格 然后我就可以从中发布 我正在尝试使用 jQuery AJAX 数据 但由于某种原因 我没有收到处理程序的任何响应 这段代码正确吗 document on ready function contactButton on
  • UITableView titleForHeaderInSection 显示全部大写

    我正在使用 titleForHeaderInSection 显示 UITableView 部分的标题 它在 iOS6 SDK 中工作得很好 但 iOS7 SDK 显示的标题全部大写 我猜这是苹果更新的人机界面指南的一部分 那里的所有示例都显
  • Oracle Merge 删除子句其中数据在目标中但不在源中

    尝试从目标表中删除源表中不存在的记录 对象类型 CREATE OR REPLACE type dbo P REC AS OBJECT ATTR1 VARCHAR2 64 BYTE ATTR2 VARCHAR2 128 BYTE ATTR3
  • Tkinter - 如何将实例变量传递给另一个类?

    我用谷歌搜索了很多 但没有成功 上周发布了一个问题 但没有答案 因为似乎太长了 希望新问题更加清晰 这只是一小段代码 如果您运行它 您将能够重现该问题 我基本上需要做的是获取用户输入 来自 mainGUI 类的 E1 并将其传递给数据库类中
  • Firebase 数据库中“加载文档时出错”

    我在尝试访问时遇到错误Database内的菜单项Firebase 控制台 这是一个新的数据库 实际上有几条数据记录 但屏幕一直旋转很长时间 然后返回消息 加载文档时出错 同时我可以访问验证菜单项没有任何问题 Note 我使用的是配备 Cat
  • yii 执行自定义命令时出错

    当我运行自定义时 出现以下错误yiic终端中的命令 我似乎无法找出此错误的原因 任何人都可以指出我正确的方向 我知道数据库工作正常 应用程序的其他部分工作正常
  • 这段简单的代码的复杂性是多少?

    I m pasting this text from an ebook I have It says the complexity if O n2 and also gives an explanation for it but I fai
  • XSLT:没有属​​性且没有子元素的元素转换为父属性

    给定 xml 文件的结构 名称和值未知 对于每个具有简单结构 没有子节点 没有属性 但有文本且不为空 的非根元素 将其转换为父级的属性 我有 xml 文件
  • 房间和可用日期 PHP/MySQL

    因此 我正在设计一个适用于酒店的 Web 应用程序 它最终应该成为通过一些额外代码为每个酒店网站安装的简单方法 该应用程序是使用 php 和 mysql 因此 正如您可能猜到的那样 我对数据库结构非常困惑 不过 我做了一些研究 我不仅仅是要
  • Git clean 被忽略的文件夹

    我有一个文件夹foo包含在 gitignore 中 gitignore this contains foo foo bar 当我跑步时git clean f or git clean f x 这不会删除bar bar是一个普通文件 有没有办
  • boto3.Bucket.upload_file 是阻塞还是非阻塞?

    Is boto3 Bucket upload file http boto3 readthedocs io en latest reference services s3 html S3 Bucket upload file阻塞还是非阻塞
  • 插入多对多关系表

    简单场景 ClientTable ClientId ClientName Phone Age CityTable CityID CityName Country ClientCityTable ClientCityID ClientID C
  • 如何在 html 文本区域中显示以下文本?

    我有一个如下所示的字符串 请看一下 我把它作为图像 这里也不显示 如果我将该字符串放在这里 它就会变成以下内容 21154537878887GHE u0044 u0045 现在我的问题是 有没有办法将原始字符串放入 HTML 中
  • 有什么方法可以从 lme4 mer 模型拟合对象生成 LaTeX 表吗?

    有谁知道如何从 lme4 生成一个好的出版质量的 LaTeX 表mer目的 既没有xtable方法 包xtable 也不latex方法 包Hmisc 知道如何处理mer对象 例如 考虑到这种拟合 library lme4 fm1 lt lm
  • 如何更改 Rails 应用程序数据?

    我看过很多关于 ActiveRecord 迁移以及是否应该使用它们来更改应用程序中的数据的讨论 有些人说是 有些人说不 我的问题是 如果您不使用迁移来执行此操作 那么您使用什么 只是你写的另一个脚本 我正在寻求有关替代方法的建议 以及为什么