将时间戳添加到 db Rails 5+ 中的现有表

2024-04-04

尝试将时间戳添加到现有表中。 根据API文档添加时间戳 https://apidock.com/rails/ActiveRecord/ConnectionAdapters/SchemaStatements/add_timestamps

这是我的迁移代码:

  def change
    add_timestamps(:products, null: false)
  end

出现错误:

*-- add_timestamps(:products, {:null=>false})
rails aborted!
StandardError: An error has occurred, this and all later migrations canceled:
SQLite3::SQLException: Cannot add a NOT NULL column with default value NULL: ALTER TABLE "products" ADD "created_at" datetime NOT NULL*

我也尝试过这方面的所有解决方案thread https://stackoverflow.com/questions/7542976/add-timestamps-to-an-existing-table

同样的错误... 轨道 5.1.4 红宝石2.4.0


您无法将具有非空约束的列添加到非空表中,因为表中的现有行将立即具有空值,因此条件失败。

相反,分三个步骤引入列:

def change
  # add new column but allow null values
  add_timestamps :products, null: true 

  # backfill existing records with created_at and updated_at
  # values that make clear that the records are faked
  long_ago = DateTime.new(2000, 1, 1)
  Product.update_all(created_at: long_ago, updated_at: long_ago)

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

将时间戳添加到 db Rails 5+ 中的现有表 的相关文章

随机推荐

  • 为什么 DbSet.Add 工作这么慢?

    8 个月前曾在这里讨论过同样的话题 如何加快 DbSet Add 的速度 https stackoverflow com questions 4355474 how do i speed up dbset add 除了使用 SqlBulkC
  • JavaFX 字体渲染中的错误字符间距(字距调整)(在 Linux 中)

    我已经开始在 JavaFX 中开发一个应用程序 并且遇到了一个问题 我可以找到很少的有用信息 Linux 中字符之间的间距非常不均匀 我不是在谈论不同字符的宽度 而是在谈论字符之间的空格 它在普通文本中可见 但以下示例比普通文本更好地说明了
  • 如果满足多个条件,则具有重置选项的累积和

    如果满足多个条件 我正在尝试使用重置选项进行累积总和 更具体地说 我想对变量进行累积求和amount and count分组依据id如果满足这两个条件 则重新从 0 开始重置 amount gt 10 且count gt 3 我还想创建一个
  • Android-Facebook SDK:无法共享照片,对话框不显示

    这是我第一次使用Android Facebook SDK 我正在尝试发布位图 但我不断收到此消息 Warning Error com facebook FacebookException Failed to copy image 我可以发布
  • ruby base64 通过以 2 位字符开头来编码 128 位数字,以防止末尾填充

    这个问题是我之前问题的后续 如何在 Ruby 中使用自定义字符集将 UUID 转换为字符串 https stackoverflow com questions 47803212 how can i convert a uuid to a s
  • 无法从 Xcode 6.1 中的情节提要连接自定义协议委托

    我刚刚将我的 mac 升级到 10 10 将 Xcode 升级到 6 1 发现一个关于故事板的奇怪的事情 我的案例使用的是 swift 项目 无法再从故事板连接自定义协议委托 旧版本 Xcode 附带的旧连接很好 但我无法再连接任何新委托
  • Keras:TimeDistributed + InceptionV3 错误

    当我尝试在 TimeDistributed 包装器中使用 Inception 时 我在 Keras 中遇到了一个非常奇怪的错误 这段代码很简单 应该适用于许多模型或层 但奇怪的是 inception v3在预测时失败 import nump
  • 检查单实例java程序[重复]

    这个问题在这里已经有答案了 我有一个 Java 程序 带有 swing gui 我希望只存在 1 个实例 如果它尝试打开程序的另一个实例 我希望将当前实例带到前台 我该怎么做呢 提前致谢 使用启动应用程序Java网络启动 https sta
  • NV21 格式和奇数图像尺寸

    我在 Android 中使用 NV21 图像已经有一段时间了 我一直在跟踪可能由 NV21 图像中不正确的索引字节引起的错误 答案中的图片这个问题 https stackoverflow com questions 5272388 extr
  • 根据buildType更改android项目中的.properties文件和settings.gradle文件

    我有一个 android gradle 项目 其中有两种构建类型 QA 和 prod 我想根据构建类型更改 properties 文件中的属性 我还想根据 buildType 更改 settings gradle 文件中的值之一 我是 an
  • 使用Karate REST API工具上传文件

    我正在尝试使用空手道在特定的松弛通道上上传图像 但没有运气 我尝试了多次不同的步骤 但仍然有 200 响应 并且图像未显示在通道中 尝试发布文字内容并成功在频道上找到文字 以下是我根据空手道文档尝试过的两个 post Feature Pos
  • 如何创建如下所示的交叉表报表?

    是否可以使用 Crystal Report 交叉表创建以下报表 这是报告 Growth Rate Last Year First Year Total each Area 这是我的结果集 Year Area PeopleCount 2005
  • 调整图像大小以适合 div + 保持比例 + 水平和垂直居中 + 圆角

    问题 调整图像大小以适合 div 已解决 保持比例已解决 水平和垂直居中 已解决 圆角 a 矩形图像 已解决 b 横幅图像 不可能的 所以问题是 如何去掉图像的矩形角 请看这里看看问题所在 gt gt gt http jsfiddle ne
  • 安装WDK VC++后损坏

    从以下位置安装 WDK https learn microsoft com en us windows hardware drivers download the wdk https learn microsoft com en us wi
  • 按给定位置将字符串分成两部分

    string Some string pos 5 begging Some s end tring 按给定位置将字符串分成两部分的最佳方法是什么 您可以使用substr http php net substr获取两个子字符串 str1 su
  • 如何发现 Heroku 上的内存泄漏?

    我有一个在 Heroku Cedar 上使用 Ruby 1 9 3 运行的 Rails 3 2 8 应用程序 该应用程序启动时运行良好 但连续使用一天左右后 我开始在日志中看到 R14 错误 一旦内存错误开始 即使应用程序闲置几个小时 它们
  • scikit-learn 中的 TfidfVectorizer:ValueError:np.nan 是无效文档

    我正在使用 scikit learn 中的 TfidfVectorizer 从文本数据中提取一些特征 我有一个 CSV 文件 其中包含分数 可以是 1 或 1 和评论 文本 我将这些数据提取到 DataFrame 中 以便可以运行 Vect
  • 尝试填充浮点数组时出现 ArrayStoreException

    为什么以下代码会引发异常 这意味着什么 float foo array new float WIDTH HEIGHT Assume WDITH and Height are defined java util Arrays fill foo
  • VB.Net 控制台应用程序返回 SHA512 哈希值

    我正在尝试在 VB Net 2008 中编写一个控制台应用程序来接受命令行参数输入 密码 并输出哈希值 我修改了这样它就会接受一个参数 并且我添加了自己的盐 密钥 但是与相同密码和盐的 PHP 输出相比 输出似乎不正确 我需要这样的东西 这
  • 将时间戳添加到 db Rails 5+ 中的现有表

    尝试将时间戳添加到现有表中 根据API文档添加时间戳 https apidock com rails ActiveRecord ConnectionAdapters SchemaStatements add timestamps 这是我的迁