**Motivation**
1. Purpose is to enhance DB schema and add `NOT NULL` everywhere where `NULL` is not expected since SQLite by default accepts null values. [[ https://linear.app/comm/issue/ENG-32/check-sqlite-tables-for-default-null | task ]]
2. Instead of running all migrations to create database even on a fresh install ([[ https://linear.app/comm/issue/ENG-1592/sqlite-migrations-always-start-from-0 | task ]]) there is possibility to infer model from `sqlite_orm`, while orm itself deduce where types are not nullish there will be inconsistency (orm will generate `NOT NULL` clause in places where it should be).
**Implementation**
There is no `ALTER COLUMN` or any more straightforward method to do it, this solution is suggested by SQLite docs: https://www.sqlite.org/lang_altertable.html#making_other_kinds_of_table_schema_changes.
**Why this change**
1. [[ https://github.com/CommE2E/comm/blob/master/native/cpp/CommonCpp/DatabaseManagers/entities/Draft.h#L7 | key and text fields are std::string ]] and as a result they can not be assigned to null (it's not the same as empty string), so `NULL` should not appear in DB.
2. In [[ https://github.com/CommE2E/comm/blob/master/native/cpp/CommonCpp/NativeModules/CommCoreModule.cpp#L47 | CommCoreModule ]] while adding something do drafts table we use `asString` method which will return string or throw error.