Skip to content

Commit bd65ec4

Browse files
authored
feat: add analyze data to migration (#393)
1 parent f3674d8 commit bd65ec4

File tree

3 files changed

+49
-2
lines changed

3 files changed

+49
-2
lines changed

crates/database/db/src/operations.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -900,8 +900,8 @@ impl<T: ReadConnectionProvider + Sync + ?Sized> DatabaseReadOperations for T {
900900
// (i.e. L2BlockNumber is null) nor skipped.
901901
let condition = Condition::all()
902902
.add(models::l1_message::Column::L1BlockNumber.lte(target_block_number as i64))
903-
.add(models::l1_message::Column::Skipped.eq(false))
904-
.add(models::l1_message::Column::L2BlockNumber.is_null());
903+
.add(models::l1_message::Column::L2BlockNumber.is_null())
904+
.add(models::l1_message::Column::Skipped.eq(false));
905905
// Yield n messages matching the condition ordered by increasing queue index.
906906
Ok(models::l1_message::Entity::find()
907907
.filter(condition)

crates/database/migration/src/lib.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ mod m20251005_160938_add_initial_l1_block_numbers;
1717
mod m20251013_140946_add_initial_l1_processed_block_number;
1818
mod m20251021_070729_add_skipped_column;
1919
mod m20251021_144852_add_queue_index_index;
20+
mod m20251027_090416_add_table_statistics;
2021

2122
mod migration_info;
2223
pub use migration_info::{
@@ -46,6 +47,7 @@ impl<MI: MigrationInfo + Send + Sync + 'static> MigratorTrait for Migrator<MI> {
4647
Box::new(m20251013_140946_add_initial_l1_processed_block_number::Migration),
4748
Box::new(m20251021_070729_add_skipped_column::Migration),
4849
Box::new(m20251021_144852_add_queue_index_index::Migration),
50+
Box::new(m20251027_090416_add_table_statistics::Migration),
4951
]
5052
}
5153
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
use sea_orm_migration::prelude::*;
2+
3+
#[derive(DeriveMigrationName)]
4+
pub struct Migration;
5+
6+
#[async_trait::async_trait]
7+
impl MigrationTrait for Migration {
8+
async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
9+
let db = manager.get_connection();
10+
11+
db.execute_unprepared("ANALYZE;").await?;
12+
db.execute_unprepared("DELETE FROM sqlite_stat1;").await?;
13+
db.execute_unprepared(
14+
r#"
15+
INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES
16+
('block_signature', 'idx_block_signature_block_hash', '96134 1'),
17+
('block_signature', 'sqlite_autoindex_block_signature_1', '96134 1'),
18+
('metadata', 'sqlite_autoindex_metadata_1', '4 1'),
19+
('l2_block', 'idx_batch_index', '14240240 120'),
20+
('l2_block', 'idx_batch_hash', '14240240 120'),
21+
('l2_block', 'idx_block_hash', '14240240 1'),
22+
('l2_block', 'idx_l2_block_block_number', '14240240 1'),
23+
('block_data', 'sqlite_autoindex_block_data_1', '8484488 1'),
24+
('l1_message', 'idx_l1_message_queue_index', '1079892 1'),
25+
('l1_message', 'idx_l1_message_l2_block', '1079892 8'),
26+
('l1_message', 'idx_l1_block_number', '1079892 3'),
27+
('l1_message', 'idx_l1_message_hash', '1079892 1'),
28+
('l1_message', 'idx_queue_hash', '1079892 61'),
29+
('batch_commit', 'idx_finalized_block_number', '118854 2'),
30+
('batch_commit', 'idx_batch_commit_block_number', '118854 2'),
31+
('batch_commit', 'idx_batch_commit_hash', '118854 1'),
32+
('batch_commit', 'sqlite_autoindex_batch_commit_1', '118854 1'),
33+
('seaql_migrations', 'sqlite_autoindex_seaql_migrations_1', '17 1');
34+
"#,
35+
)
36+
.await?;
37+
db.execute_unprepared("ANALYZE sqlite_schema;").await?;
38+
39+
Ok(())
40+
}
41+
42+
async fn down(&self, _manager: &SchemaManager) -> Result<(), DbErr> {
43+
Ok(())
44+
}
45+
}

0 commit comments

Comments
 (0)