Ensure consistent naming of title fields #528
|
@ -17,6 +17,7 @@
|
||||||
package migration
|
package migration
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"code.vikunja.io/api/pkg/config"
|
||||||
"src.techknowlogick.com/xormigrate"
|
"src.techknowlogick.com/xormigrate"
|
||||||
"xorm.io/xorm"
|
"xorm.io/xorm"
|
||||||
)
|
)
|
||||||
|
@ -70,6 +71,46 @@ func init() {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// sqlite is not able to drop columns. To have inserting new tasks still work, we drop the column manually.
|
||||||
|
if config.DatabaseType.GetString() == "sqlite" {
|
||||||
|
_, err = tx.Exec(`
|
||||||
|
create table tasks_dg_tmp
|
||||||
|
(
|
||||||
|
id INTEGER not null
|
||||||
|
primary key autoincrement,
|
||||||
|
description TEXT,
|
||||||
|
done INTEGER,
|
||||||
|
done_at_unix INTEGER,
|
||||||
|
due_date_unix INTEGER,
|
||||||
|
created_by_id INTEGER not null,
|
||||||
|
list_id INTEGER not null,
|
||||||
|
repeat_after INTEGER,
|
||||||
|
priority INTEGER,
|
||||||
|
start_date_unix INTEGER,
|
||||||
|
end_date_unix INTEGER,
|
||||||
|
hex_color TEXT,
|
||||||
|
percent_done REAL,
|
||||||
|
"index" INTEGER default 0 not null,
|
||||||
|
uid TEXT,
|
||||||
|
created INTEGER not null,
|
||||||
|
updated INTEGER not null,
|
||||||
|
bucket_id INTEGER,
|
||||||
|
position REAL,
|
||||||
|
title TEXT
|
||||||
|
);
|
||||||
|
|
||||||
|
insert into tasks_dg_tmp(id, description, done, done_at_unix, due_date_unix, created_by_id, list_id, repeat_after, priority, start_date_unix, end_date_unix, hex_color, percent_done, "index", uid, created, updated, bucket_id, position, title) select id, description, done, done_at_unix, due_date_unix, created_by_id, list_id, repeat_after, priority, start_date_unix, end_date_unix, hex_color, percent_done, "index", uid, created, updated, bucket_id, position, title from tasks;
|
||||||
|
|
||||||
|
drop table tasks;
|
||||||
|
|
||||||
|
alter table tasks_dg_tmp rename to tasks;
|
||||||
|
|
||||||
|
create unique index tasks_id_uindex
|
||||||
|
on tasks (id);
|
||||||
|
`)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
return dropTableColum(tx, "tasks", "text")
|
return dropTableColum(tx, "tasks", "text")
|
||||||
},
|
},
|
||||||
Rollback: func(tx *xorm.Engine) error {
|
Rollback: func(tx *xorm.Engine) error {
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
package migration
|
package migration
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"code.vikunja.io/api/pkg/config"
|
||||||
"src.techknowlogick.com/xormigrate"
|
"src.techknowlogick.com/xormigrate"
|
||||||
"xorm.io/xorm"
|
"xorm.io/xorm"
|
||||||
)
|
)
|
||||||
|
@ -70,6 +71,34 @@ func init() {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// sqlite is not able to drop columns. To have inserting new namespaces still work, we drop the column manually.
|
||||||
|
if config.DatabaseType.GetString() == "sqlite" {
|
||||||
|
_, err = tx.Exec(`
|
||||||
|
create table namespaces_dg_tmp
|
||||||
|
(
|
||||||
|
id INTEGER not null
|
||||||
|
primary key autoincrement,
|
||||||
|
description TEXT,
|
||||||
|
owner_id INTEGER not null,
|
||||||
|
created INTEGER not null,
|
||||||
|
updated INTEGER not null,
|
||||||
|
is_archived INTEGER default 0 not null,
|
||||||
|
hex_color TEXT,
|
||||||
|
title TEXT
|
||||||
|
);
|
||||||
|
|
||||||
|
insert into namespaces_dg_tmp(id, description, owner_id, created, updated, is_archived, hex_color, title) select id, description, owner_id, created, updated, is_archived, hex_color, title from namespaces;
|
||||||
|
|
||||||
|
drop table namespaces;
|
||||||
|
|
||||||
|
alter table namespaces_dg_tmp rename to namespaces;
|
||||||
|
|
||||||
|
create unique index UQE_namespaces_id
|
||||||
|
on namespaces (id);
|
||||||
|
`)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
return dropTableColum(tx, "namespaces", "name")
|
return dropTableColum(tx, "namespaces", "name")
|
||||||
},
|
},
|
||||||
Rollback: func(tx *xorm.Engine) error {
|
Rollback: func(tx *xorm.Engine) error {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user