如何将字符串列更改为 bigint?

2024-04-27

在轨道迁移中。如何将字符串类型列更改为 bigint?

I have:

t.change :ip_number_from, :integer, :limit => 8

I get:

PG::Error: ERROR:  column "ip_number_from" cannot be cast to type bigint

我什至尝试了两种选择:

change_column :ip_to_countries, :ip_number_from, :integer, :limit => 8
change_column :ip_to_countries, :ip_number_from, :bigint

还是同样的错误。


Postgres 告诉您该列中存在它不知道如何转换的现有数据,因此它需要一个 ALTER 语句,该语句为该列提供 USING 子句以指定如何转换现有值。

不幸的是,您将需要下拉特定于数据库的代码来完成此操作,或者使用类似于此处建议的解决方案的代码:

http://webjazz.blogspot.co.uk/2010/03/how-to-alter-columns-in-postgresql.html http://webjazz.blogspot.co.uk/2010/03/how-to-alter-columns-in-postgresql.html

编辑:以下是您在迁移中直接在 SQL 中执行此操作的方法:

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

如何将字符串列更改为 bigint? 的相关文章

  • 使用 Hibernate 映射数组

    你能帮我使用 Hibernate 映射这个类吗 public class MyClass private Long id private String name private int values 我使用的是 PostgreSQL 表中的
  • 弃用警告:ActionView::Base 实例应使用查找上下文、赋值和控制器来构造

    我将应用程序从 Rails 5 2 迁移到 Rails 6 只剩下一件事要做 但我不知道如何做 我有这个弃用警告 弃用警告 ActionView Base 实例应使用查找上下文 赋值和控制器来构造 从 Users xxx xxxx app
  • CORS 与 Amazon S3 和 Cloudfront

    我有一个托管在 Heroku 上的 Rails 应用程序 它使用 CloudFront 以及托管在 S3 上的资产 它完美地显示了资产 尽管需要一些努力 我的 Cloudfront 设置 Forward Headers Whitelist
  • Rails:CSS 在开发和生产中似乎有所不同

    我有一个标准的 Rails 4 heroku 设置 有一点很奇怪 页面的不同元素在本地环境和生产环境中以不同的尺寸显示 例如 虽然 header height 设置为特定的像素值 但两个环境的高度不同 与内容的宽度相同 我将最大宽度设置为
  • “PG DuplicateTable:错误关系“产品”已存在”- Heroku db:迁移尝试

    Rails 菜鸟尝试将 DB 迁移到 Heroku 请原谅这个错误消息的多汁性 但我认为将其全部包含在内可能很重要 我不知道为什么会发生这种情况 也不知道这意味着什么 我的架构中只有一张产品表和一张创建产品迁移表 Migrating to
  • 回形针回调还是简单的处理器?

    我想运行回调after post process但它似乎无法在使用 Paperclip 2 3 8 的 Rails 3 0 1 中工作 它给出了一个错误 undefined method post process callbacks for
  • 在 Ruby 中创建 Microsoft Word (.docx) 文档

    有没有一种简单的方法可以在 Ruby 应用程序中创建 Word 文档 docx 实际上 就我而言 它是一个由 Linux 服务器提供服务的 Rails 应用程序 类似的宝石Prawn http prawn majesticseacreatu
  • 使用 Rails 自动登录?

    我正在尝试使用 Rails 的 Restful Authentication 插件建立一个简单的身份验证系统 我只是想知道它是如何工作的 b c 我似乎无法弄清楚 cookie 的要求是什么 以及如何做到这一点浏览器始终会记住您 6 个多月
  • has_many 关系的动态 class_name

    我正在尝试与动态 class name 属性建立 has many 关系 class Category lt ActiveRecord Base has many ads class name gt lambda return self i
  • PostgreSQL - 具有局部变量的函数 - 列引用不明确

    我查看了与我的主题相匹配的其他问题 但就我而言 我认为歧义来自于与列同名的变量 这是我尝试创建的函数的简化版本 CREATE OR REPLACE FUNCTION get user id username TEXT RETURNS INT
  • “psycopg2 的构建轮子失败” - 使用 virtualenv 和 pip 的 MacOSX

    我第一次尝试与其他几个人一起制作一个网站 在尝试使用 Django Python VirtualEnv 时遇到了一个奇怪的错误 我已经找到了针对其他操作系统 例如 Ubuntu 的此问题的解决方案 但找不到针对 Mac 的任何好的解决方案
  • 在 Ruby on Rails 中渲染部分集合正在乘以项目

    我想在 Ruby on Rails 的页面中显示项目列表 我使用部分 in my index html erb我有的文件 in list news html erb I have div class news div
  • Python 和 Postgresql:操作错误:fe_sendauth:未提供密码

    我知道 StackOverflow 上有很多类似的问题 但我已经阅读并重新阅读了它们 但我似乎无法解决我的特定问题 我正在开发一个使用 Peewee 和 Psycopg2 访问 PostGresQL 数据库的 Python 应用程序 这一切
  • 覆盖 Rails ActiveRecord 销毁行为的最佳方法是什么?

    我有一个应用程序 我想在其中覆盖许多模型的销毁行为 用例是用户可能有删除特定记录的合法需要 但实际上从数据库中删除该行会破坏引用完整性 从而影响其他相关模型 例如 系统的用户可能想要删除不再与其有业务往来的客户 但需要维护与该客户的交易 看
  • 如何让 Rails 资产管道生成源地图?

    我想让 Rails 与编译后的 CoffeeScript 缩小的 JS 一起生成源映射 以便更好地记录错误 不过 网上似乎还没有关于如何执行此操作的全面文档 有人这样做过吗 我使用 Rails 3 2 和 Heroku Rails 支持缩小
  • 单表继承发现问题

    我有以下3个rails类 它们都存储在一张表中 使用rails的单表继承 class Template lt ActiveRecord Base class ThingTemplate lt Template class StockThin
  • ActiveAdmin 使用 Devise Rails 登录两次

    我有一个Rails已设置使用的应用程序devise with User模型 我只是添加ActiveAdmin并且它使用单独的型号名称AdminUser 这个新模型也使用了设计 我遇到的问题是 当我去localhost 3000 admin
  • 如何让我的导航栏出现在 Rails 应用程序的每个页面上?

    目前 我的导航栏位于我的index htm erb 文件中 目前仅在主页上显示 我想知道为了让导航栏出现在我的应用程序的每一页上 必须采取哪些必要步骤 我的导航栏的代码如下所示
  • ruby 调试和黄瓜

    我在 Cucumber 中遇到了失败的情况 我想使用 ruby debug 来调试我的 Rails 控制器 但是 如果我将 调试器 添加到我想要中断的位置 它就不会停止 我尝试将 ruby debug 和 ruby gems 的 requi
  • Carrierwave 在文件上传时抛出“堆栈级别太深”错误

    我有一个奇怪的问题 不知道如何进一步调试 如果我用 html 表单上传文件 我会得到 SystemStackError stack level too deep 痕迹是 Started POST global accounts 82 for

随机推荐