- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个 SQL 文件,它加载到 sqlite3 中并为我创建了一堆表。在该 sql 文件中,我尝试使用 pragma 强制执行 foreign_keys:
PRAGMA foreign_keys = on; -- also 1, true
当我使用 -init
加载 sql 文件时,它看起来不错:
$ sqlite3 -init sqlite3-empty.sql
-- Loading resources from sqlite3-empty.sql
SQLite version 3.22.0 2018-01-22 18:45:57
Enter ".help" for usage hints.
sqlite> pragma foreign_keys;
1
sqlite> .quit
但是,如果我加载由上面的 sql 文件创建的数据库文件,它不会粘住:
$ sqlite3 unit_test.db
-- Loading resources from /home/me/.sqliterc
SQLite version 3.22.0 2018-01-22 18:45:57
Enter ".help" for usage hints.
sqlite> pragma foreign_keys;
foreign_keys
------------
0
sqlite> .quit
$ cat ~/.sqliterc
.headers on
.mode column
是否可以在我的 .sqliterc
文件中设置此 pragma?还是来自环境变量?
请注意,我正在加载 sql 创建脚本作为 go 单元测试设备设置的一部分:
sqlite3, err := sql.Open("sqlite3", "unit_test.db")
if err != nil {
err = fmt.Errorf("NewSQLite3() error creating db connection: %w", err)
return nil, err
}
[...]
file, err := ioutil.ReadFile("sqlite3-empty.sql")
if err != nil {
err = fmt.Errorf("NewSQLite3() error opening seed file: %w", err)
return nil, err
}
requests := strings.Split(string(file), ";")
for _, request := range requests {
_, err := db.Client.Exec(request)
if err != nil {
err = fmt.Errorf("NewSQLite3() error executing seed file sql line: %v\n", err)
return nil, err
}
}
架构设置正确。除了 foreign_keys pragma 之外的所有东西都有效。我也尝试过在别处找到的基于 URI 的方法:
sqlite3, err := sql.Open("sqlite3", "file:unit_test.db?foreign_keys=on")
它们都不起作用或没有任何效果。如何设置 foreign_keys pragma 并使其保持不变?
编辑:重复以上内容,将 golang 排除在外:
$ sqlite3 -init sqlite3-empty.sql
-- Loading resources from sqlite3-empty.sql
SQLite version 3.22.0 2018-01-22 18:45:57
Enter ".help" for usage hints.
sqlite> pragma foreign_keys;
1
sqlite> .backup backup.db
sqlite> .quit
$ sqlite3 backup.db
-- Loading resources from /home/johnnyb/.sqliterc
SQLite version 3.22.0 2018-01-22 18:45:57
Enter ".help" for usage hints.
sqlite> pragma foreign_keys;
foreign_keys
------------
0
sqlite>
编辑 #2:我可以通过将 pragma 添加到我的 .sqliterc
文件来让它“坚持”,但要求用户这样做是一个 PITA。没有别的办法吗?也不太确定这将如何与 CI 一起工作......
最佳答案
答案列在 mattn's sqlite3 driver page 上:
sqlite3, err := sql.Open("sqlite3", "file:unit_test.db?_foreign_keys=on")
我在上面很近,只是没有下划线...谢谢@shawn...
关于golang 中的 sqlite3,foreign_keys pragma 不强制键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64597611/
我的模型是这样的: class Post :shareable, :primary_key => :guid, :foreign_key => :shareable_guid has_many
我有一个城市模型和城市表。服务模型和服务表。一项服务有一个城市(起源城市和目的地城市)。一个城市“有很多”服务。在 services 表中,有两列关于城市:origin_city_id 和destin
我有一个名为 animals 的表,其中包含以下列: id: INT state: VARCHAR 另一个名为 houses 的表具有以下列: id: INT animal_id: INT color
这是集群表: ╭────╥────────────┬─────────────╮ │ id ║ name │ prefix │ ╞════╬════════════╪══════
我得到了以下模型: class Coaching < ActiveRecord::Base ... belongs_to :user belongs_to :coach, class_na
我们有一些从提供非整数唯一 ID 的第三方导入的数据。 在 Rails 2.2.2 中,我们可以在 has_many 与非整数列的关系上使用 :foreign_key 并且它有效。 但是我们现在升级到
如果你有 Parent has_many :children Child Child 上的外键(到 Parent)和相应的 belongs_to :parent 是否有任何原因可能不受欢迎? 什么时
我正在使用 Rails 3,我有一个简单的模型 class Post has_many :comments end 我正在做一些元编程,我需要知道注释表中的 foreign_key 的名称。 在上
我正在处理一个相当简单的 has_many through: 情况,我可以使 class_name/foreign_key 参数在一个方向上工作,但不能在另一个方向上工作。也许你能帮帮我。 (附注:我
我有以下一组模型: class Cardstock :hex, :foreign_key => :hex has_many :palette_colors, :through => :color
在合适的 sqlite 版本中,我们可以通过“PRAGMA foreign_keys = ON”强制外键约束。但是,用户无法每次建立连接时都登录数据库。所以我想知道我们如何让它在 sqlalchemy
我最近遇到了这段代码。用户有很多答案。 :class_name 和 :foreign_key 的目的是什么? class Answer 'Question", :foreign_key => 'qu
我最近遇到了这段代码。用户有很多答案。 :class_name 和 :foreign_key 的目的是什么? class Answer 'Question", :foreign_key => 'qu
是否有一个 Postgresql 数据库配置等同于 Sqlite 中的 PRAGMA foreign_keys = ON? 最佳答案 您可以测试禁用表上的所有触发器,FK 是通过 PostgreSQL
假设您为电视节目创建了一个 imdb 类型的网站。您有一个 Show,其中包含许多附加的 episodes 和一群 people 现在我通过contribution 表将people 链接到episo
我有 2 个模型与 has_one 和 has_many 关联。 realm.rb class Realm < ActiveRecord::Base has_one :realm_type,
我在一个实体中有两个外键引用另一个实体。这是它的样子 class Review(db.Model): __tablename__ = 'Review' id = db.
从文档中我读到: class Book < ApplicationRecord belongs_to :author, class_name: "Patron", foreign_key: "pa
我用 Flask-SQLalchemy 创建了 3 个模型:用户、角色、用户角色 角色.py: class Role( ActiveRecord, db.Model ): __tablenam
我创建了一个 SQL 文件,它加载到 sqlite3 中并为我创建了一堆表。在该 sql 文件中,我尝试使用 pragma 强制执行 foreign_keys: PRAGMA foreign_keys
我是一名优秀的程序员,十分优秀!