Skip to content

Commit a0694f1

Browse files
✨ add conversion of SQLite custom BOOL data type to MySQL TINYINT(1) (#112)
1 parent ad0b166 commit a0694f1

File tree

2 files changed

+4
-3
lines changed

2 files changed

+4
-3
lines changed

src/sqlite3_to_mysql/transporter.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,7 @@ def _translate_type_from_sqlite_to_mysql(self, column_type: str) -> str:
295295
if "UNSIGNED" in self._mysql_integer_type:
296296
return f"{match.group(0).upper()}{length} UNSIGNED"
297297
return f"{match.group(0).upper()}{length}{' UNSIGNED' if unsigned else ''}"
298-
if data_type == "BOOLEAN":
298+
if data_type in {"BOOL", "BOOLEAN"}:
299299
return "TINYINT(1)"
300300
if data_type.startswith(("REAL", "DOUBLE", "FLOAT", "DECIMAL", "DEC", "FIXED")):
301301
return full_column_type

tests/unit/sqlite3_to_mysql_test.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ def test_translate_type_from_sqlite_to_mysql_all_valid_columns(
7272
mysql_text_type=mysql_text_type,
7373
)
7474

75-
for column in sqlite_column_types + ("INT64",):
75+
for column in sqlite_column_types + ("INT64", "BOOL",):
7676
if column in {"Insert", "insert", "dialect"}:
7777
continue
7878
elif column == "VARCHAR":
@@ -83,7 +83,7 @@ def test_translate_type_from_sqlite_to_mysql_all_valid_columns(
8383
assert proc._translate_type_from_sqlite_to_mysql(column) == "BIGINT(19)"
8484
elif column in {"TINYTEXT", "TEXT", "MEDIUMTEXT", "LONGTEXT"}:
8585
assert proc._translate_type_from_sqlite_to_mysql(column) == proc._mysql_text_type
86-
elif column == "BOOLEAN":
86+
elif column in {"BOOL", "BOOLEAN"}:
8787
assert proc._translate_type_from_sqlite_to_mysql(column) == "TINYINT(1)"
8888
else:
8989
assert proc._translate_type_from_sqlite_to_mysql(column) == column
@@ -199,6 +199,7 @@ def test_translate_type_from_sqlite_to_mysql_all_valid_columns(
199199
("FIXED UNSIGNED", "FIXED UNSIGNED"),
200200
("FIXED(10,5)", "FIXED(10,5)"),
201201
("FIXED(10,5) UNSIGNED", "FIXED(10,5) UNSIGNED"),
202+
("BOOL", "TINYINT(1)"),
202203
("BOOLEAN", "TINYINT(1)"),
203204
("INT64", "BIGINT(19)"),
204205
],

0 commit comments

Comments
 (0)