当我在postgresql上运行我的Rails迁移应用程序时,我收到了以下通知

NOTICE:  CREATE TABLE will create implicit sequence "notification_settings_id_seq" for serial column "notification_settings.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "notification_settings_pkey" for table "notification_settings"

我的迁移文件包含088_创建_通知_设置.rb

class CreateNotificationSettings < ActiveRecord::Migration
  def self.up
    create_table :notification_settings do |t|
      t.integer :user_id
      t.integer :notification_id
      t.boolean :notification_on
      t.boolean :outbound
    end
  end

  def self.down
    drop_table :notification_settings
  end
end

我想知道

这是什么意思?

如何避免这种情况?

如果不避免,这些通知会对申请产生什么影响?

当做

萨利尔

推荐答案

Rails(更准确地说是ActiveRecord)正在向表中添加一个id列,并使该列成为主键.对于PostgreSQL,此列的类型为serial.serial column本质上是一个四字节整数,它与一个序列相结合,可以自动提供自动递增的值.

第一个通知:

注意:CREATE TABLE将为序列列"notification_settings.id"创建隐式序列"notification_settings_id_seq"

只是告诉你PostgreSQL正在幕后创建一个序列来实现serial列函数.

第二条通知:

注意:创建表/主键将为表"通知设置"创建隐式索引"通知设置"

只是告诉你PostgreSQL正在创建一个索引来帮助实现主键,尽管你没有明确要求它.

你可以忽略这些通知,它们只是信息.如果要 suppress 它们,可以在database.yml的相应部分添加min_messages: WARNING.

Postgresql相关问答推荐

将列类型从文本[]更改为jsonb[]

在PostgreSQL中,`MY_VARIABLE IN(<;Long_ARRAY_of_Items>;)`何时是FAST?

忽略 split_part 的第 n 个分隔符之后

PostgreSQL 连接字符串的正则表达式

合并两个字典并创建一个包含更新凭据的字典列表

配置:错误:C 编译器无法在 Ubuntu 中创建可执行文件

从dump文件中恢复三张表遇到的问题

如何展平也在关系中使用的区分大小写的列

如何将 grafana 与 Google Cloud SQL 集成

计算 PostgreSQL 中给定 GPS 坐标的日出和日落时间

如何让 Flask SQLAlchemy 重用数据库连接?

如何向文本字段添加长度约束

无法登录 PostgreSQL 数据库

如何在 Postgresql 中正确使用 FETCH FIRST?

如何使用 postgresql 中的存储过程将数据插入表中

Rails ActiveRecord - 如何获取两个日期之间的记录

子查询的自连接

根据 Helm 图表设置值

PostgreSQL regexp_replace() 只保留一个空格

调用 getNextException 来查看原因:如何让 Hibernate / JPA 显示异常的数据库服务器消息