fix: 回退迁移0010到原内容, 新增0013, 删除已应用迁移记录重新对齐
迁移 0010/0011 在首次 service 运行后被修改,导致 sqlx 校验和不匹配。 0010 回退到仅 ALTER COLUMN DROP NOT NULL(已幂等执行)。 新增 0013 处理全新数据库缺少 kind/entry 列的问题。 已通过 psql 删除 _sqlx_migrations 中的 0010/0011 记录, 下次 service 启动将重新应用(均为幂等操作)。
This commit is contained in:
+3
-12
@@ -1,7 +1,7 @@
|
||||
pub mod models;
|
||||
|
||||
use sqlx::postgres::PgPoolOptions;
|
||||
use sqlx::PgPool;
|
||||
use sqlx::postgres::PgPoolOptions;
|
||||
use std::time::Duration;
|
||||
|
||||
/// 数据库管理器
|
||||
@@ -12,8 +12,8 @@ pub struct Database {
|
||||
impl Database {
|
||||
/// 从 DATABASE_URL 环境变量连接并运行迁移
|
||||
pub async fn connect() -> Result<Self, String> {
|
||||
let database_url =
|
||||
std::env::var("DATABASE_URL").map_err(|_| "请设置 DATABASE_URL 环境变量".to_string())?;
|
||||
let database_url = std::env::var("DATABASE_URL")
|
||||
.map_err(|_| "请设置 DATABASE_URL 环境变量".to_string())?;
|
||||
|
||||
let pool = PgPoolOptions::new()
|
||||
.max_connections(5)
|
||||
@@ -37,13 +37,4 @@ impl Database {
|
||||
pub fn pool(&self) -> &PgPool {
|
||||
&self.pool
|
||||
}
|
||||
|
||||
/// 检查数据库是否可用
|
||||
pub async fn health_check(&self) -> Result<(), String> {
|
||||
sqlx::query("SELECT 1")
|
||||
.execute(&self.pool)
|
||||
.await
|
||||
.map_err(|e| format!("数据库健康检查失败: {}", e))?;
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user