mirror of
https://github.com/simonw/sqlite-utils.git
synced 2026-07-26 10:54:32 +02:00
sqlite-utils add-foreign-keys command, closes #157
This commit is contained in:
parent
7805d53bcf
commit
3cc1944e53
3 changed files with 81 additions and 0 deletions
|
|
@ -1405,3 +1405,41 @@ def test_query_update(db_path, args, expected):
|
|||
assert db.execute_returning_dicts("select * from dogs") == [
|
||||
{"id": 1, "age": 5, "name": "Cleo"},
|
||||
]
|
||||
|
||||
|
||||
def test_add_foreign_keys(db_path):
|
||||
db = Database(db_path)
|
||||
db["countries"].insert({"id": 7, "name": "Panama"}, pk="id")
|
||||
db["authors"].insert({"id": 3, "name": "Matilda", "country_id": 7}, pk="id")
|
||||
db["books"].insert({"id": 2, "title": "Wolf anatomy", "author_id": 3}, pk="id")
|
||||
assert db["authors"].foreign_keys == []
|
||||
assert db["books"].foreign_keys == []
|
||||
result = CliRunner().invoke(
|
||||
cli.cli,
|
||||
[
|
||||
"add-foreign-keys",
|
||||
db_path,
|
||||
"authors",
|
||||
"country_id",
|
||||
"countries",
|
||||
"id",
|
||||
"books",
|
||||
"author_id",
|
||||
"authors",
|
||||
"id",
|
||||
],
|
||||
)
|
||||
assert result.exit_code == 0
|
||||
assert db["authors"].foreign_keys == [
|
||||
ForeignKey(
|
||||
table="authors",
|
||||
column="country_id",
|
||||
other_table="countries",
|
||||
other_column="id",
|
||||
)
|
||||
]
|
||||
assert db["books"].foreign_keys == [
|
||||
ForeignKey(
|
||||
table="books", column="author_id", other_table="authors", other_column="id"
|
||||
)
|
||||
]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue