mirror of
https://code.mensbeam.com/MensBeam/Arsse.git
synced 2024-12-22 13:12:41 +00:00
New schema for PostgreSQL and MySQL
This commit is contained in:
parent
4db1b95cf4
commit
16d2e01668
3 changed files with 33 additions and 2 deletions
|
@ -256,7 +256,8 @@ class Database {
|
|||
throw new User\Exception("alreadyExists", ["action" => __FUNCTION__, "user" => $user]);
|
||||
}
|
||||
$hash = (strlen($password) > 0) ? password_hash($password, \PASSWORD_DEFAULT) : "";
|
||||
$this->db->prepare("INSERT INTO arsse_users(id,password,num) values(?, ?, coalesce((select max(num) from arsse_users), 0) + 1)", "str", "str")->runArray([$user,$hash]);
|
||||
// NOTE: This roundabout construction (with 'select' rather than 'values') is required by MySQL, because MySQL is riddled with pitfalls and exceptions
|
||||
$this->db->prepare("INSERT INTO arsse_users(id,password,num) select ?, ?, ((select max(num) from arsse_users) + 1)", "str", "str")->runArray([$user,$hash]);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -2,5 +2,20 @@
|
|||
-- Copyright 2017 J. King, Dustin Wilson et al.
|
||||
-- See LICENSE and AUTHORS files for details
|
||||
|
||||
alter table arsse_users add column num bigint unsigned unique;
|
||||
alter table arsse_users add column admin boolean not null default 0;
|
||||
alter table arsse_users add column lang longtext;
|
||||
alter table arsse_users add column tz varchar(44) not null default 'Etc/UTC';
|
||||
alter table arsse_users add column soort_asc boolean not null default 0;
|
||||
create temporary table arsse_users_existing(
|
||||
id text not null,
|
||||
num serial primary key
|
||||
) character set utf8mb4 collate utf8mb4_unicode_ci;
|
||||
insert into arsse_users_existing(id) select id from arsse_users;
|
||||
update arsse_users as u, arsse_users_existing as n
|
||||
set u.num = n.num
|
||||
where u.id = n.id;
|
||||
drop table arsse_users_existing;
|
||||
alter table arsse_users modify num bigint unsigned not null;
|
||||
|
||||
update arsse_meta set value = '7' where "key" = 'schema_version';
|
||||
|
|
|
@ -2,6 +2,21 @@
|
|||
-- Copyright 2017 J. King, Dustin Wilson et al.
|
||||
-- See LICENSE and AUTHORS files for details
|
||||
|
||||
|
||||
alter table arsse_users add column num bigint unique;
|
||||
alter table arsse_users add column admin smallint not null default 0;
|
||||
alter table arsse_users add column lang text;
|
||||
alter table arsse_users add column tz text not null default 'Etc/UTC';
|
||||
alter table arsse_users add column soort_asc smallint not null default 0;
|
||||
create temp table arsse_users_existing(
|
||||
id text not null,
|
||||
num bigserial
|
||||
);
|
||||
insert into arsse_users_existing(id) select id from arsse_users;
|
||||
update arsse_users as u
|
||||
set num = e.num
|
||||
from arsse_users_existing as e
|
||||
where u.id = e.id;
|
||||
drop table arsse_users_existing;
|
||||
alter table arsse_users alter column num set not null;
|
||||
|
||||
update arsse_meta set value = '7' where "key" = 'schema_version';
|
||||
|
|
Loading…
Reference in a new issue