sqlite3.DatabaseError: malformed database schema при переносе SQLite3 базы с Windows10 на Ubuntu16.04

Решил перенести работающий код, использующий SQLite c Windows10 на Ubunta 16.4. Да к тому же на ARM64 NANOPI NEO4. Ну получился такой себе серверочек. Одна программа пошла. А вот вторая, использующая SQLite - ну никак. Говорит, что структура базы плохая.

pi@NanoPi-NEO4:~/py_codes/scheduler$ python3 main_scheduler.py
2021-04-01 14:51:39,165 - Sheduler.get_sheduled_tasks - INFO - Вызов с args=(<sqlite3.Cursor object at 0x7fa5d6a960>,), kwargs={}
Traceback (most recent call last):
  File "main_scheduler.py", line 586, in <module>
    sheduled_tasks = get_sheduled_tasks(c)
  File "/home/pi/py_codes/scheduler/logger.py", line 20, in wrap_log
    result = func(*args, **kwargs)
  File "main_scheduler.py", line 112, in get_sheduled_tasks
    records = cursor.execute('SELECT * FROM tasks_sheduled WHERE not finished').fetchall()
sqlite3.DatabaseError: malformed database schema (tasks_reports) - default value of column [is_handmade] is not constant

То есть основная ошибка:

sqlite3.DatabaseError: malformed database schema (TABLE_NAME) - default value of column [COLUMN_NAME] is not constant

Но я ничего не менял в базе. Просто скопипастил файл.
Неужели нужна какая-то специальная миграция?

Для справки. На винде Python 3.8, а на убунте - Python 3.6
default value of column [is_handmade] установил в False.


Ответы (2 шт):

Автор решения: Vasyl Kolomiets

Проблема оказалась как раз в False. Видимо на винде можно , а на убунте нет )) Везде заменил булевы значения при создании базы по умолчания с False на 0, и чтение пошло )

→ Ссылка
Автор решения: MaxU

Выдержка из документации:

2.1. Boolean Datatype

SQLite does not have a separate Boolean storage class. Instead, Boolean values are stored as integers 0 (false) and 1 (true).

→ Ссылка