mirror of
https://github.com/simonw/sqlite-utils.git
synced 2026-09-21 07:54:24 +02:00
.transform(pk=None) to create rowid table
This commit is contained in:
parent
1e05fb157d
commit
95bfe1c77c
2 changed files with 13 additions and 6 deletions
|
|
@ -721,7 +721,7 @@ class Table(Queryable):
|
||||||
columns=None,
|
columns=None,
|
||||||
rename=None,
|
rename=None,
|
||||||
drop=None,
|
drop=None,
|
||||||
pk=None,
|
pk=DEFAULT,
|
||||||
not_null=None,
|
not_null=None,
|
||||||
defaults=None,
|
defaults=None,
|
||||||
drop_foreign_keys=None,
|
drop_foreign_keys=None,
|
||||||
|
|
@ -746,7 +746,7 @@ class Table(Queryable):
|
||||||
columns=None,
|
columns=None,
|
||||||
rename=None,
|
rename=None,
|
||||||
drop=None,
|
drop=None,
|
||||||
pk=None,
|
pk=DEFAULT,
|
||||||
not_null=None,
|
not_null=None,
|
||||||
defaults=None,
|
defaults=None,
|
||||||
drop_foreign_keys=None,
|
drop_foreign_keys=None,
|
||||||
|
|
@ -771,7 +771,7 @@ class Table(Queryable):
|
||||||
copy_from_to[name] = new_name
|
copy_from_to[name] = new_name
|
||||||
|
|
||||||
sqls = []
|
sqls = []
|
||||||
if pk is None:
|
if pk is DEFAULT:
|
||||||
if len(self.pks) == 1:
|
if len(self.pks) == 1:
|
||||||
pk = self.pks[0]
|
pk = self.pks[0]
|
||||||
else:
|
else:
|
||||||
|
|
@ -820,9 +820,6 @@ class Table(Queryable):
|
||||||
not_null=create_table_not_null,
|
not_null=create_table_not_null,
|
||||||
defaults=create_table_defaults,
|
defaults=create_table_defaults,
|
||||||
foreign_keys=create_table_foreign_keys,
|
foreign_keys=create_table_foreign_keys,
|
||||||
# column_order=column_order,
|
|
||||||
# hash_id=hash_id,
|
|
||||||
# extracts=extracts,
|
|
||||||
).strip()
|
).strip()
|
||||||
)
|
)
|
||||||
# Copy across data, respecting any renamed columns
|
# Copy across data, respecting any renamed columns
|
||||||
|
|
|
||||||
|
|
@ -75,6 +75,16 @@ import pytest
|
||||||
"ALTER TABLE [dogs_new_suffix] RENAME TO [dogs]",
|
"ALTER TABLE [dogs_new_suffix] RENAME TO [dogs]",
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
# Remove primary key, creating a rowid table
|
||||||
|
(
|
||||||
|
{"pk": None},
|
||||||
|
[
|
||||||
|
"CREATE TABLE [dogs_new_suffix] (\n [id] INTEGER,\n [name] TEXT,\n [age] TEXT\n);",
|
||||||
|
"INSERT INTO [dogs_new_suffix] ([id], [name], [age]) SELECT [id], [name], [age] FROM [dogs]",
|
||||||
|
"DROP TABLE [dogs]",
|
||||||
|
"ALTER TABLE [dogs_new_suffix] RENAME TO [dogs]",
|
||||||
|
],
|
||||||
|
),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
def test_transform_sql(fresh_db, params, expected_sql):
|
def test_transform_sql(fresh_db, params, expected_sql):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue