mirror of
https://github.com/Eggbertx/gochan.git
synced 2025-08-06 21:46:24 -07:00
Started work on migration script for old database
This commit is contained in:
parent
f0c1fbba94
commit
c84b27d7ce
4 changed files with 86 additions and 4 deletions
|
@ -69,8 +69,11 @@ func initDB(initFile string) *gcutil.GcError {
|
|||
return gcutil.NewError(fmt.Sprintf(
|
||||
"SQL database initialization file (%s) missing. Please reinstall gochan", initFile), false)
|
||||
}
|
||||
return runSQLFile(filePath)
|
||||
}
|
||||
|
||||
sqlBytes, err := ioutil.ReadFile(filePath)
|
||||
func runSQLFile(path string) *gcutil.GcError {
|
||||
sqlBytes, err := ioutil.ReadFile(path)
|
||||
if err != nil {
|
||||
return gcutil.FromError(err, false)
|
||||
}
|
||||
|
|
|
@ -1056,3 +1056,15 @@ func doesGochanPrefixTableExist() (bool, *gcutil.GcError) {
|
|||
}
|
||||
return count > 0, nil
|
||||
}
|
||||
|
||||
func renameTable(tablename string, tableNameNew string) *gcutil.GcError {
|
||||
var sql = "ALTER TABLE DBPREFIX" + tablename + " RENAME TO DBPREFIX" + tableNameNew
|
||||
_, err := ExecSQL(sql)
|
||||
return err
|
||||
}
|
||||
|
||||
func dropTable(tablename string) *gcutil.GcError {
|
||||
var sql = "DROP TABLE DBPREFIX" + tablename
|
||||
_, err := ExecSQL(sql)
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -39,7 +39,7 @@ func handleVersioning(dbType string) *gcutil.GcError {
|
|||
return err
|
||||
}
|
||||
if isOldDesign {
|
||||
return migratePreApril2020Database()
|
||||
return migratePreApril2020Database(dbType)
|
||||
}
|
||||
//No old or current database versioning tables found.
|
||||
if config.Config.DBprefix != "" {
|
||||
|
@ -96,8 +96,35 @@ func versionHandler(foundDatabaseVersion int) *gcutil.GcError {
|
|||
|
||||
}
|
||||
|
||||
func migratePreApril2020Database() *gcutil.GcError {
|
||||
return notImplemented
|
||||
func migratePreApril2020Database(dbType string) *gcutil.GcError {
|
||||
var tables = []string{"announcements", "appeals", "banlist", "boards", "embeds", "info", "links", "posts", "reports", "sections", "sessions", "staff", "wordfilters"}
|
||||
for _, i := range tables {
|
||||
err := renameTable(i, i+"_old")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
var buildfile = "initdb_" + dbType + ".sql"
|
||||
err := runSQLFile(gcutil.FindResource(buildfile,
|
||||
"/usr/local/share/gochan/"+buildfile,
|
||||
"/usr/share/gochan/"+buildfile))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
const migrFile = "oldDBMigration.sql"
|
||||
err = runSQLFile(gcutil.FindResource(migrFile,
|
||||
"/usr/local/share/gochan/"+migrFile,
|
||||
"/usr/share/gochan/"+migrFile))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for _, i := range tables {
|
||||
err := dropTable(i + "_old")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
var migrations = map[int]func() *gcutil.GcError{}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue