SQLite
m ((username removed) (log details removed): Moving to Documentation namespace)
(Automatically adding template at the end of the page.)
 
Line 21: Line 21:
We have added an extra pass in DBEvolution - so that we see if you want us to recreate the table this way for you.
We have added an extra pass in DBEvolution - so that we see if you want us to recreate the table this way for you.
[[Category:SQL]]
[[Category:SQL]]
{{Edited|July|12|2024}}

Latest revision as of 15:46, 10 February 2024

SQLite is a small database engine suitable to embed in applications as a data store for a single user.

It is possibly the world's most used database since all android phones have this included.

Having a small footprint comes with a penalty - it does not support the Drop column!

As MDriven is all about changing your mind when you want to, the Drop column is something you probably want to have.

To adapt to this limitation, we added a new config setting named DropColumnsByRecreateTableTemplate.

The updated SQLite persistence mapper now has this setting as default:

sb.AppendLine("CREATE TABLE <TableName>_backup(<KeepColumnsForCreate>);");
sb.AppendLine("INSERT INTO <TableName>_backup SELECT <KeepColumns> FROM <TableName>;");            
sb.AppendLine("DROP TABLE <TableName>;");            
sb.AppendLine("CREATE TABLE <TableName>(<KeepColumnsForCreate>);");            
sb.AppendLine("INSERT INTO <TableName> SELECT <KeepColumns> FROM <TableName>_backup;");            
sb.AppendLine("DROP TABLE <TableName>_backup;");            
config.DropColumnTemplate = ""; // SQLite does not support removing column by column            
config.DropIndexTemplate = "";            
config.DropColumnsByRecreateTableTemplate= sb.ToString(); 

We have added an extra pass in DBEvolution - so that we see if you want us to recreate the table this way for you.

This page was edited 99 days ago on 02/10/2024. What links here