mirror of
https://github.com/woodchen-ink/Q58Bot.git
synced 2025-07-18 05:42:06 +08:00
修复
This commit is contained in:
parent
8661f5c774
commit
190155ff5b
@ -44,12 +44,12 @@ func NewDatabase() (*Database, error) {
|
|||||||
func (d *Database) createTables() error {
|
func (d *Database) createTables() error {
|
||||||
queries := []string{
|
queries := []string{
|
||||||
`CREATE TABLE IF NOT EXISTS keywords_new (
|
`CREATE TABLE IF NOT EXISTS keywords_new (
|
||||||
id INTEGER PRIMARY KEY,
|
id INTEGER PRIMARY KEY,
|
||||||
keyword TEXT UNIQUE,
|
keyword TEXT UNIQUE,
|
||||||
is_link BOOLEAN DEFAULT FALSE,
|
is_link BOOLEAN DEFAULT FALSE,
|
||||||
is_auto_added BOOLEAN DEFAULT FALSE,
|
is_auto_added BOOLEAN DEFAULT FALSE,
|
||||||
added_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
added_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||||
)`,
|
)`,
|
||||||
`CREATE INDEX IF NOT EXISTS idx_keyword ON keywords_new(keyword)`,
|
`CREATE INDEX IF NOT EXISTS idx_keyword ON keywords_new(keyword)`,
|
||||||
`CREATE INDEX IF NOT EXISTS idx_added_at ON keywords_new(added_at)`,
|
`CREATE INDEX IF NOT EXISTS idx_added_at ON keywords_new(added_at)`,
|
||||||
`CREATE TABLE IF NOT EXISTS whitelist (
|
`CREATE TABLE IF NOT EXISTS whitelist (
|
||||||
@ -359,24 +359,24 @@ func (d *Database) Close() error {
|
|||||||
|
|
||||||
func (d *Database) MigrateExistingKeywords() error {
|
func (d *Database) MigrateExistingKeywords() error {
|
||||||
// 检查是否已经执行过迁移
|
// 检查是否已经执行过迁移
|
||||||
var migrationDone bool
|
var migrationDone string
|
||||||
err := d.db.QueryRow("SELECT value FROM config WHERE key = 'keywords_migrated'").Scan(&migrationDone)
|
err := d.db.QueryRow("SELECT value FROM config WHERE key = 'keywords_migrated'").Scan(&migrationDone)
|
||||||
if err != nil && err != sql.ErrNoRows {
|
if err != nil && err != sql.ErrNoRows {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if migrationDone {
|
if migrationDone == "true" {
|
||||||
return nil // 迁移已经完成,无需再次执行
|
return nil // 迁移已经完成,无需再次执行
|
||||||
}
|
}
|
||||||
|
|
||||||
// 检查旧表是否存在
|
// 检查旧表是否存在
|
||||||
var oldTableExists bool
|
var oldTableName string
|
||||||
err = d.db.QueryRow("SELECT name FROM sqlite_master WHERE type='table' AND name='keywords'").Scan(&oldTableExists)
|
err = d.db.QueryRow("SELECT name FROM sqlite_master WHERE type='table' AND name='keywords'").Scan(&oldTableName)
|
||||||
if err != nil && err != sql.ErrNoRows {
|
if err != nil && err != sql.ErrNoRows {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if oldTableExists {
|
if oldTableName == "keywords" {
|
||||||
// 迁移数据
|
// 迁移数据
|
||||||
_, err = d.db.Exec(`INSERT OR IGNORE INTO keywords_new (keyword, is_link, is_auto_added, added_at)
|
_, err = d.db.Exec(`INSERT OR IGNORE INTO keywords_new (keyword, is_link, is_auto_added, added_at)
|
||||||
SELECT keyword,
|
SELECT keyword,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user