No, one sqlite database per table is just plain wrong. The ownername should be the name of your (one) SQLite file. Full path name is the table name as it exists in SQLite.
SQLite is rather limited when it comes to ALTER table options (ALTER TABLE)
You can rename a table or column and you can add and drop columns.
If you need to change a column type, you have to go the long way round…
create table newtab
(oldcolumn defs,
changedcolumn defs);
insert into newtab(columns) select oldcolumns from existing_table;
drop table existing_table;
alter table newtab rename to existing_table;
In my opinion, even when you have everything in the one SQLite database I would only cascade changes from SQLite to Clarion. That is, change your table defn in SQLite, use the synchronizer to cascade the changes to your clarion dictionary.
Other things to bear in mind: Clarion will not import views from SQLite. What I do is create a table in SQLite by selecting from a view, import the table into clarion and point it to the view, then delete the temporary table in SQLite.
When you import tables into Clarion and the names in SQLite have underscores, Clarion will generate an external name like this: “with_underscore”. Those quotation marks will cause an error as soon as you try to open the table. Either get rid of the external name entirely or get rid of the quotes. Or don’t use underscores.
In my experience, Clarion dealing with SQLite locking is flaky. Sometimes things work as advertized, at other times Clarion has the database locked so that even operations on the same thread cannot make changes to data. However I haven’t yet found either the smoking gun or the silver bullet.