使用upsert时,“ created_at”列中的空值违反了非空约束

丹尼尔

为什么为created_atnull,我将如何解决?

 ↳ app/controllers/projects_controller.rb:28:in `create'
  Tag Upsert (5.6ms)  INSERT INTO "tags" ("category","name") VALUES ('topic', 'career') ON CONFLICT ("id") DO UPDATE SET "type"=excluded."type","name"=excluded."name" RETURNING "id"
  ↳ app/controllers/projects_controller.rb:32:in `block in create'
Completed 500 Internal Server Error in 62ms (ActiveRecord: 31.0ms | Allocations: 22999)



ActiveRecord::NotNullViolation (PG::NotNullViolation: ERROR:  null value in column "created_at" violates not-null constraint
DETAIL:  Failing row contains (5, topic, career, null, null).
):

app/controllers/projects_controller.rb:32:in `block in create'
app/controllers/projects_controller.rb:31:in `each'
app/controllers/projects_controller.rb:31:in `create'
# projects_controller.rb
def create
    @project = Project.create(project_params)
    if @project.valid?
      # tags
      params[:tags].each do |tag|
        @tag = Tag.upsert({ category: 'topic', name: tag })
        ProjectTag.create(tag: @tag, project: @project)
      end
      respond_to do |format|
        format.json { render json: { "message": "success!", status: :ok } }
      end
    end
  end
亩太短

upsert 无需很少的ActiveRecord即可在直接SQL中工作:

在单个SQL INSERT语句中将单个记录更新或插入(插入)到数据库中。它不会实例化任何模型,也不会触发Active Record回调或验证。

因此AR不会像平常一样碰触updated_at触摸created_at

最简单的方法是添加一个迁移,以在数据库中为created_at添加默认值updated_at

change_column_default :tags, :created_at, from: nil, to: ->{ 'now()' }
change_column_default :tags, :updated_at, from: nil, to: ->{ 'now()' }

然后,数据库将处理这些列。

迁移中需要注意两件事:

  1. 传递:from:to选项,而不仅仅是新的默认值,可以进行可逆迁移。
  2. 您必须使用lambda作为:to值,以便使用PostgreSQLnow()函数而不是字符串'now()'

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

列“ user_id”中的空值违反了Django 1.9中的非空约束

来自分类Dev

Django-列中的空值违反了Django Admin中的非空约束

来自分类Dev

Django-列中的空值违反了Django Admin中的非空约束

来自分类Dev

“ last_login”列中的空值违反了非空约束

来自分类Dev

错误:“ id”列中的空值违反了非空约束

来自分类Dev

Rails:PG :: NotNullViolation:错误:“ id”列中的空值违反了非空约束

来自分类Dev

“ owner_id”列中/ new空值处的Django IntegrityError违反了非空约束

来自分类Dev

Django-IntegrityError:“ user_id”列中的空值违反了非空约束

来自分类Dev

列“ user_id”中的Django空值违反了非空约束

来自分类Dev

500错误:“ timeline_id”列中的空值违反了非空约束

来自分类Dev

Django:“ user_id”列中的空值违反了非空约束

来自分类Dev

Rails:PG :: NotNullViolation:错误:“ id”列中的空值违反了非空约束

来自分类Dev

Django - “wins”列中的空值违反了非空约束

来自分类Dev

WSO2AM 分析 2.1 - “os”列中的空值违反了非空约束

来自分类Dev

提交表单时,为什么 Django 会在“user_id”列中引发 IntegrityError :null 值违反非空约束?

来自分类Dev

如何解决错误:(psycopg2.errors.NotNullViolation)列“ id”中的空值违反了非空约束?

来自分类Dev

Django 自定义用户模型:IntegrityError:“is_superuser”列中的空值违反了非空约束

来自分类常见问题

Odoo:服务器操作在“ activity_user_type”列中返回空值违反了非空约束

来自分类Dev

在DRF(django-rest-framework)中,列“ author_id”中的空值违反了非空约束。我该怎么办?

来自分类Dev

IntegrityError:关系“ message”的列“ category_id”中的空值违反了非空约束详细信息:失败行包含

来自分类Dev

空值违反了非空约束,但是模型具有空白= True null = True

来自分类Dev

JPA - 创建交叉引用条目时出错 - 违反非空约束

来自分类Dev

使用Upsert更新为true时未设置默认值

来自分类Dev

使用upsert时无法将新数据推送到数组中

来自分类Dev

django.db.utils.IntegrityError:关系“ movie_movie”的列“ author_id”中的空值违反了非空约束,不知道为什么会这样

来自分类Dev

迁移后自动删除未使用列的非空约束

来自分类Dev

在气流 dag 中添加路径变量时,重复的键值违反了唯一约束

来自分类Dev

使用非空约束配置 Glue 目录

来自分类Dev

awk使用先前的非空列值填充空列值:

Related 相关文章

  1. 1

    列“ user_id”中的空值违反了Django 1.9中的非空约束

  2. 2

    Django-列中的空值违反了Django Admin中的非空约束

  3. 3

    Django-列中的空值违反了Django Admin中的非空约束

  4. 4

    “ last_login”列中的空值违反了非空约束

  5. 5

    错误:“ id”列中的空值违反了非空约束

  6. 6

    Rails:PG :: NotNullViolation:错误:“ id”列中的空值违反了非空约束

  7. 7

    “ owner_id”列中/ new空值处的Django IntegrityError违反了非空约束

  8. 8

    Django-IntegrityError:“ user_id”列中的空值违反了非空约束

  9. 9

    列“ user_id”中的Django空值违反了非空约束

  10. 10

    500错误:“ timeline_id”列中的空值违反了非空约束

  11. 11

    Django:“ user_id”列中的空值违反了非空约束

  12. 12

    Rails:PG :: NotNullViolation:错误:“ id”列中的空值违反了非空约束

  13. 13

    Django - “wins”列中的空值违反了非空约束

  14. 14

    WSO2AM 分析 2.1 - “os”列中的空值违反了非空约束

  15. 15

    提交表单时,为什么 Django 会在“user_id”列中引发 IntegrityError :null 值违反非空约束?

  16. 16

    如何解决错误:(psycopg2.errors.NotNullViolation)列“ id”中的空值违反了非空约束?

  17. 17

    Django 自定义用户模型:IntegrityError:“is_superuser”列中的空值违反了非空约束

  18. 18

    Odoo:服务器操作在“ activity_user_type”列中返回空值违反了非空约束

  19. 19

    在DRF(django-rest-framework)中,列“ author_id”中的空值违反了非空约束。我该怎么办?

  20. 20

    IntegrityError:关系“ message”的列“ category_id”中的空值违反了非空约束详细信息:失败行包含

  21. 21

    空值违反了非空约束,但是模型具有空白= True null = True

  22. 22

    JPA - 创建交叉引用条目时出错 - 违反非空约束

  23. 23

    使用Upsert更新为true时未设置默认值

  24. 24

    使用upsert时无法将新数据推送到数组中

  25. 25

    django.db.utils.IntegrityError:关系“ movie_movie”的列“ author_id”中的空值违反了非空约束,不知道为什么会这样

  26. 26

    迁移后自动删除未使用列的非空约束

  27. 27

    在气流 dag 中添加路径变量时,重复的键值违反了唯一约束

  28. 28

    使用非空约束配置 Glue 目录

  29. 29

    awk使用先前的非空列值填充空列值:

热门标签

归档