feat: add rqlite database support

This commit is contained in:
t8y2 committed 2026-06-05 01:02:07 +08:00
1 parent a799958328
commit 0887b96236
34 files changed
+804 -12

No files matched your search

+29 -1
View File
@@ -241,7 +241,7 @@ fn capabilities_for(database_type: Option<DatabaseType>) -> TableStructureCapabi
comment: true,
..base
},
Some(DatabaseType::Sqlite) => TableStructureCapabilities {
Some(DatabaseType::Sqlite | DatabaseType::Rqlite) => TableStructureCapabilities {
dialect: StructureDialect::Sqlite,
add_column: true,
drop_column: true,
@@ -1966,6 +1966,34 @@ mod tests {
);
}
#[test]
fn builds_rqlite_changes_with_sqlite_dialect() {
let mut email = column("email");
email.data_type = "text".to_string();
email.is_nullable = false;
let mut email_index = index("idx_users_email", &["email"]);
email_index.filter = "email IS NOT NULL".to_string();
let result = build_table_structure_change_sql(TableStructureSqlOptions {
database_type: Some(DatabaseType::Rqlite),
schema: None,
table_name: "users".to_string(),
columns: vec![email],
indexes: vec![email_index],
table_comment: None,
original_table_comment: None,
});
assert_eq!(result.warnings, Vec::<String>::new());
assert_eq!(
result.statements,
vec![
"ALTER TABLE \"users\" ADD COLUMN \"email\" text NOT NULL;",
"CREATE INDEX \"idx_users_email\" ON \"users\" (\"email\") WHERE email IS NOT NULL;",
]
);
}
#[test]
fn builds_mysql_column_reorder_statements() {
let mut id = column("id");