Ответ 1
Выглядит хорошо. Вот Документы.
sqlite> create table t1 (id INTEGER PRIMARY KEY, name TEXT, created DATE);
sqlite> .table
t1
sqlite> .dump
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE t1 (id INTEGER PRIMARY KEY, name TEXT, created DATE);
COMMIT;
sqlite> alter table t1 add column status varchar default 'N';
sqlite> .dump
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE t1 (id INTEGER PRIMARY KEY, name TEXT, created DATE, status varchar default 'N');
COMMIT;
sqlite> insert into t1 (name) values ("test");
sqlite> select * from t1;
1|test||N
Дамп вашей схемы и подтвердите, что ваша структура таблицы существует после вызова ALTER TABLE, но до INSERT. Если в транзакции убедитесь, что COMMIT транзакция перед вставкой.
$ sqlite3 test.db ".dump"