SQLite
m ((username removed) (log details removed): Moving to Documentation namespace)
No edit summary
(One intermediate revision by one other user not shown)
Line 1: Line 1:
SQLite is a small database engine suitable to embed in applications as a data store for a single user.
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.


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.
 
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.
To adapt to this limitation, we added a new config setting named DropColumnsByRecreateTableTemplate.
Line 21: Line 17:
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}}

Revision as of 05:13, 23 May 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 1 days ago on 06/17/2024. What links here