here’s some more manual fixes i had to make to the seahub-db.sql
script for it to run without errors.
api2_tokenv2
# wrong:
CREATE TABLE IF NOT EXISTS `api2_tokenv2` ( `key` varchar(40) NOT NULL PRIMARY KEY, `user` varchar(255) NOT NULL, `platform` varchar(32) NOT NULL, `device_id` varchar(40) NOT NULL, `device_name` varchar(40) NOT NULL, `platform_version` varchar(16) NOT NULL, `client_version` varchar(16) NOT NULL, `last_accessed` datetime NOT NULL, `last_login_ip` char(39), wiped_at datetime DEFAULT NULL, created_at datetime NOT NULL DEFAULT `1970-01-01 00:00:00`, UNIQUE (`user`, `platform`, `device_id`)) ENGINE=INNODB;
this was missing backticks for wiped_at
and created_at
, but backticks around 1970-01-01 00:00:00
should be single quotes:
# ok:
CREATE TABLE IF NOT EXISTS `api2_tokenv2` ( `key` varchar(40) NOT NULL PRIMARY KEY, `user` varchar(255) NOT NULL, `platform` varchar(32) NOT NULL, `device_id` varchar(40) NOT NULL, `device_name` varchar(40) NOT NULL, `platform_version` varchar(16) NOT NULL, `client_version` varchar(16) NOT NULL, `last_accessed` datetime NOT NULL, `last_login_ip` char(39), `wiped_at` datetime DEFAULT NULL, `created_at` datetime NOT NULL DEFAULT '1970-01-01 00:00:00', UNIQUE (`user`, `platform`, `device_id`)) ENGINE=INNODB;
custom_share_permission
# wrong:
CREATE TABLE IF NOT EXISTS `custom_share_permission` (`id` integer NOT NULL PRIMARY KEY AUTO_INCREMENT AUTO_INCREMENT, `repo_id` varchar(36) NOT NULL, `name` varchar(255) NOT NULL, `description` varchar(500) NOT NULL, `permission` , `reporter` text NOT NULL) ENGINE=INNODB;
looking at seahub/sql/mysql.sql
from the server sources, permission
should be longtext NOT NULL
:
# ok:
CREATE TABLE IF NOT EXISTS `custom_share_permission` (`id` integer NOT NULL PRIMARY KEY AUTO_INCREMENT AUTO_INCREMENT, `repo_id` varchar(36) NOT NULL, `name` varchar(255) NOT NULL, `description` varchar(500) NOT NULL, `permission` longtext NOT NULL, `reporter` text NOT NULL) ENGINE=INNODB;
share_fileshare
# wrong:
CREATE TABLE IF NOT EXISTS `share_fileshare` ( `id` integer NOT NULL PRIMARY KEY AUTO_INCREMENT, `username` varchar(255) NOT NULL, `repo_id` varchar(36) NOT NULL, `path` text NOT NULL, `token` varchar(10) NOT NULL UNIQUE, `ctime` datetime NOT NULL, `view_cnt` integer NOT NULL, `s_type` varchar(2) NOT NULL, `password` varchar(128), `expire_date` datetime, permission varchar(50) not null default `view_download`) ENGINE=INNODB;
works with added backticks around permission
and view_download
in single quotes. however, when importing my data into it, i received Data too long for column 'token'
errors and had to replace varchar(10)
with varchar(100)
as in seahub/sql/mysql.sql
:
# ok:
CREATE TABLE IF NOT EXISTS `share_fileshare` ( `id` integer NOT NULL PRIMARY KEY AUTO_INCREMENT, `username` varchar(255) NOT NULL, `repo_id` varchar(36) NOT NULL, `path` text NOT NULL, `token` varchar(100) NOT NULL UNIQUE, `ctime` datetime NOT NULL, `view_cnt` integer NOT NULL, `s_type` varchar(2) NOT NULL, `password` varchar(128), `expire_date` datetime, `permission` varchar(50) not null default 'view_download') ENGINE=INNODB;
share_uploadlinkshare
# wrong:
CREATE TABLE IF NOT EXISTS `share_uploadlinkshare` ( `id` integer NOT NULL PRIMARY KEY AUTO_INCREMENT, `username` varchar(255) NOT NULL, `repo_id` varchar(36) NOT NULL, `path` text NOT NULL, `token` varchar(10) NOT NULL UNIQUE, `ctime` datetime NOT NULL, `view_cnt` integer NOT NULL, `password` varchar(128), `expire_date` datetime) ENGINE=INNODB;
same here, replaced varchar(10)
with varchar(100)
for token
:
# ok:
CREATE TABLE IF NOT EXISTS `share_uploadlinkshare` ( `id` integer NOT NULL PRIMARY KEY AUTO_INCREMENT, `username` varchar(255) NOT NULL, `repo_id` varchar(36) NOT NULL, `path` text NOT NULL, `token` varchar(100) NOT NULL UNIQUE, `ctime` datetime NOT NULL, `view_cnt` integer NOT NULL, `password` varchar(128), `expire_date` datetime) ENGINE=INNODB;