1
0
Fork 0
mirror of https://github.com/Eggbertx/gochan.git synced 2025-08-17 10:56:24 -07:00

Add country and flag columns to DB version 3 schema

This commit is contained in:
Eggbertx 2024-01-12 15:51:05 -08:00
parent b3e7af65f7
commit 1deec0e462
8 changed files with 110 additions and 3 deletions

View file

@ -164,5 +164,30 @@ func updateMysqlDB(db *gcsql.GCDB, tx *sql.Tx, criticalCfg *config.SystemCritica
return err
}
}
// add flag column to DBPREFIXposts
dataType, err = common.ColumnType(db, tx, "flag", "DBPREFIXposts", criticalCfg)
if err != nil {
return err
}
if dataType == "" {
query = `ALTER TABLE DBPREFIXposts ADD COLUMN flag VARCHAR(45) NOT NULL DEFAULT ''`
if _, err = db.ExecTxSQL(tx, query); err != nil {
return err
}
}
// add country column to DBPREFIXposts
dataType, err = common.ColumnType(db, tx, "country", "DBPREFIXposts", criticalCfg)
if err != nil {
return err
}
if dataType == "" {
query = `ALTER TABLE DBPREFIXposts ADD COLUMN country VARCHAR(80) NOT NULL DEFAULT ''`
if _, err = db.ExecTxSQL(tx, query); err != nil {
return err
}
}
return nil
}

View file

@ -68,5 +68,30 @@ func updatePostgresDB(db *gcsql.GCDB, tx *sql.Tx, criticalCfg *config.SystemCrit
return err
}
}
// add flag column to DBPREFIXposts
dataType, err = common.ColumnType(db, tx, "flag", "DBPREFIXposts", criticalCfg)
if err != nil {
return err
}
if dataType == "" {
query = `ALTER TABLE DBPREFIXposts ADD COLUMN flag VARCHAR(45) NOT NULL DEFAULT ''`
if _, err = db.ExecTxSQL(tx, query); err != nil {
return err
}
}
// add country column to DBPREFIXposts
dataType, err = common.ColumnType(db, tx, "country", "DBPREFIXposts", criticalCfg)
if err != nil {
return err
}
if dataType == "" {
query = `ALTER TABLE DBPREFIXposts ADD COLUMN country VARCHAR(80) NOT NULL DEFAULT ''`
if _, err = db.ExecTxSQL(tx, query); err != nil {
return err
}
}
return nil
}

View file

@ -9,6 +9,7 @@ import (
)
func updateSqliteDB(db *gcsql.GCDB, tx *sql.Tx, criticalCfg *config.SystemCriticalConfig) error {
var query string
_, err := db.ExecSQL(`PRAGMA foreign_keys = ON`)
if err != nil {
return err
@ -18,7 +19,55 @@ func updateSqliteDB(db *gcsql.GCDB, tx *sql.Tx, criticalCfg *config.SystemCritic
return err
}
if dataType == "" {
query := `ALTER TABLE DBPREFIXwordfilters ADD COLUMN board_dirs varchar(255) DEFAULT '*'`
query = `ALTER TABLE DBPREFIXwordfilters ADD COLUMN board_dirs varchar(255) DEFAULT '*'`
if _, err = db.ExecTxSQL(tx, query); err != nil {
return err
}
}
// Add range_start column to DBPREFIXIp_ban if it doesn't exist
dataType, err = common.ColumnType(db, tx, "DBPREFIXip_ban", "range_start", criticalCfg)
if err != nil {
return err
}
if dataType == "" {
query = `ALTER TABLE DBPREFIXip_ban ADD COLUMN range_start VARCHAR(45) NOT NULL`
if _, err = db.ExecTxSQL(tx, query); err != nil {
return err
}
}
// Add range_start column if it doesn't exist
dataType, err = common.ColumnType(db, tx, "DBPREFIXip_ban", "range_end", criticalCfg)
if err != nil {
return err
}
if dataType == "" {
query = `ALTER TABLE DBPREFIXip_ban ADD COLUMN range_end VARCHAR(45) NOT NULL`
if _, err = db.ExecTxSQL(tx, query); err != nil {
return err
}
}
// add flag column to DBPREFIXposts
dataType, err = common.ColumnType(db, tx, "flag", "DBPREFIXposts", criticalCfg)
if err != nil {
return err
}
if dataType == "" {
query = `ALTER TABLE DBPREFIXposts ADD COLUMN flag VARCHAR(45) NOT NULL DEFAULT ''`
if _, err = db.ExecTxSQL(tx, query); err != nil {
return err
}
}
// add country column to DBPREFIXposts
dataType, err = common.ColumnType(db, tx, "country", "DBPREFIXposts", criticalCfg)
if err != nil {
return err
}
if dataType == "" {
query = `ALTER TABLE DBPREFIXposts ADD COLUMN country VARCHAR(80) NOT NULL DEFAULT ''`
if _, err = db.ExecTxSQL(tx, query); err != nil {
return err
}

View file

@ -24,7 +24,7 @@ var (
// but zero or more than one versions were found
ErrInvalidVersion = errors.New("database contains database_version table but zero or more than one versions were found")
ErrCorruptedDB = errors.New("database contains gochan prefixed tables but is missing versioning tables (possibly corrupted)")
ErrDeprecatedDB = errors.New("database layout is deprecated, please run gochan-migrate -updatedb")
ErrDeprecatedDB = errors.New("database layout is deprecated, please run gochan-migration -updatedb")
ErrInvalidDBVersion = errors.New("invalid version flag returned by GetCompleteDatabaseVersion()")
)
@ -51,7 +51,7 @@ func GetCompleteDatabaseVersion() (dbVersion, dbFlag int, err error) {
if versionTableExists {
databaseVersion, versionError := getDatabaseVersion(gochanVersionKeyConstant)
if versionError != nil {
return 0, 0, ErrInvalidVersion
return 0, 0, versionError
}
if databaseVersion < targetDatabaseVersion {
return databaseVersion, DBModernButBehind, nil

View file

@ -80,6 +80,8 @@ CREATE TABLE DBPREFIXposts(
deleted_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
is_deleted BOOL NOT NULL DEFAULT FALSE,
banned_message TEXT,
flag VARCHAR(45) NOT NULL DEFAULT '',
country VARCHAR(80) NOT NULL DEFAULT '',
CONSTRAINT posts_thread_id_fk FOREIGN KEY(thread_id) REFERENCES DBPREFIXthreads(id) ON DELETE CASCADE
);

View file

@ -80,6 +80,8 @@ CREATE TABLE DBPREFIXposts(
deleted_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
is_deleted BOOL NOT NULL DEFAULT FALSE,
banned_message TEXT,
flag VARCHAR(45) NOT NULL DEFAULT '',
country VARCHAR(80) NOT NULL DEFAULT '',
CONSTRAINT posts_thread_id_fk FOREIGN KEY(thread_id) REFERENCES DBPREFIXthreads(id) ON DELETE CASCADE
);

View file

@ -80,6 +80,8 @@ CREATE TABLE DBPREFIXposts(
deleted_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
is_deleted BOOL NOT NULL DEFAULT FALSE,
banned_message TEXT,
flag VARCHAR(45) NOT NULL DEFAULT '',
country VARCHAR(80) NOT NULL DEFAULT '',
CONSTRAINT posts_thread_id_fk FOREIGN KEY(thread_id) REFERENCES DBPREFIXthreads(id) ON DELETE CASCADE
);

View file

@ -80,6 +80,8 @@ CREATE TABLE DBPREFIXposts(
deleted_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
is_deleted BOOL NOT NULL DEFAULT FALSE,
banned_message TEXT,
flag VARCHAR(45) NOT NULL DEFAULT '',
country VARCHAR(80) NOT NULL DEFAULT '',
CONSTRAINT posts_thread_id_fk FOREIGN KEY(thread_id) REFERENCES DBPREFIXthreads(id) ON DELETE CASCADE
);