mirror of
https://github.com/zed-industries/zed.git
synced 2024-09-19 02:17:35 +03:00
fix db schema update process to ensure all tables are dropped
This commit is contained in:
parent
ed1b1a5ccd
commit
80ef92a3e1
@ -66,24 +66,28 @@ impl VectorDatabase {
|
||||
fn initialize_database(&self) -> Result<()> {
|
||||
rusqlite::vtab::array::load_module(&self.db)?;
|
||||
|
||||
// Delete existing tables, if SEMANTIC_INDEX_VERSION is bumped
|
||||
if self
|
||||
.get_existing_version()
|
||||
.map_or(false, |version| version == SEMANTIC_INDEX_VERSION as i64)
|
||||
{
|
||||
log::trace!("vector database schema up to date");
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
log::trace!("vector database schema out of date. updating...");
|
||||
self.db
|
||||
.execute(
|
||||
"
|
||||
DROP TABLE IF EXISTS documents;
|
||||
DROP TABLE IF EXISTS files;
|
||||
DROP TABLE IF EXISTS worktrees;
|
||||
DROP TABLE IF EXISTS semantic_index_config;
|
||||
",
|
||||
[],
|
||||
)
|
||||
.context("failed to drop tables")?;
|
||||
.execute("DROP TABLE IF EXISTS documents", [])
|
||||
.context("failed to drop 'documents' table")?;
|
||||
self.db
|
||||
.execute("DROP TABLE IF EXISTS files", [])
|
||||
.context("failed to drop 'files' table")?;
|
||||
self.db
|
||||
.execute("DROP TABLE IF EXISTS worktrees", [])
|
||||
.context("failed to drop 'worktrees' table")?;
|
||||
self.db
|
||||
.execute("DROP TABLE IF EXISTS semantic_index_config", [])
|
||||
.context("failed to drop 'semantic_index_config' table")?;
|
||||
|
||||
// Initialize Vector Databasing Tables
|
||||
self.db.execute(
|
||||
@ -133,6 +137,7 @@ impl VectorDatabase {
|
||||
[],
|
||||
)?;
|
||||
|
||||
log::trace!("vector database initialized with updated schema.");
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
@ -33,7 +33,7 @@ use util::{
|
||||
ResultExt,
|
||||
};
|
||||
|
||||
const SEMANTIC_INDEX_VERSION: usize = 3;
|
||||
const SEMANTIC_INDEX_VERSION: usize = 4;
|
||||
const EMBEDDINGS_BATCH_SIZE: usize = 150;
|
||||
|
||||
pub fn init(
|
||||
@ -344,14 +344,6 @@ impl SemanticIndex {
|
||||
}
|
||||
|
||||
for (worktree_id, documents, path, mtime, job_handle) in embeddings_queue.into_iter() {
|
||||
// for document in documents.iter() {
|
||||
// // TODO: Update this so it doesn't panic
|
||||
// assert!(
|
||||
// document.embedding.len() > 0,
|
||||
// "Document Embedding Not Complete"
|
||||
// );
|
||||
// }
|
||||
|
||||
db_update_tx
|
||||
.send(DbOperation::InsertFile {
|
||||
worktree_id,
|
||||
|
Loading…
Reference in New Issue
Block a user