diff --git a/datalite/migrations.py b/datalite/migrations.py index c766985..1a27574 100644 --- a/datalite/migrations.py +++ b/datalite/migrations.py @@ -132,6 +132,9 @@ def _migrate_records(class_: type, database_name: str, data, new_records = _modify_records(data, col_to_del, col_to_add, flow) for record in new_records: del record['obj_id'] + keys_to_delete = [key for key in record if record[key] is None] + for key in keys_to_delete: + del record[key] class_(**record).create_entry() diff --git a/setup.py b/setup.py index 28ddb01..e7bf144 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ with open("README.md", "r") as fh: setuptools.setup( name="datalite", # Replace with your own username - version="0.5.3", + version="0.5.4", author="Ege Ozkan", author_email="egeemirozkan24@gmail.com", description="A small package that binds dataclasses to an sqlite database", diff --git a/test/main_tests.py b/test/main_tests.py index c174d07..836177c 100644 --- a/test/main_tests.py +++ b/test/main_tests.py @@ -40,6 +40,7 @@ class Migrate1: @dataclass class Migrate2: cardinal: int + str_: str = "default" def getValFromDB(obj_id = 1): @@ -153,6 +154,7 @@ class DatabaseMigration(unittest.TestCase): basic_migrate(Migrate1, {'ordinal': 'cardinal'}) t_objs = fetch_all(Migrate1) self.assertEqual([obj.ordinal for obj in self.objs], [obj.cardinal for obj in t_objs]) + self.assertEqual(["default" for _ in range(10)], [obj.str_ for obj in t_objs]) def tearDown(self) -> None: t_objs = fetch_all(Migrate1)