database changes to support i18n in topics

This commit is contained in:
david 2002-05-18 16:31:03 +00:00
parent 43429f74fb
commit ce5922e939
4 changed files with 22 additions and 25 deletions

View File

@ -26,6 +26,8 @@ ALTER TABLE notes ADD CONSTRAINT creator_id_fk FOREIGN KEY (creator_id) REFERE
ALTER TABLE string_i18n ADD CONSTRAINT string_code_fk FOREIGN KEY (string_code) REFERENCES string(string_code);
ALTER TABLE string_i18n ADD CONSTRAINT string_lang_fk FOREIGN KEY (lang) REFERENCES language(isocode);
ALTER TABLE subtopic ADD CONSTRAINT topic_num_fk FOREIGN KEY (topic_num) REFERENCES topic(topic_num);
ALTER TABLE topic_i18n ADD CONSTRAINT topic_num_fk FOREIGN KEY (topic_num) REFERENCES topic(topic_num);
ALTER TABLE topic_i18n ADD CONSTRAINT lang_fk FOREIGN KEY (lang) REFERENCES language(isocode);
ALTER TABLE username_notes ADD CONSTRAINT user_id_fk FOREIGN KEY (user_id) REFERENCES username(user_id);
ALTER TABLE username_notes ADD CONSTRAINT creator_id_fk FOREIGN KEY (creator_id) REFERENCES username(user_id);

View File

@ -3,9 +3,6 @@ DROP TABLE topic;
CREATE TABLE topic
(
topic_num INT4 NOT NULL,
topic_name TEXT NOT NULL,
topic_description TEXT,
PRIMARY KEY (topic_num)
);

View File

@ -0,0 +1,11 @@
DROP TABLE topic_i18n;
CREATE TABLE topic_i18n
(
topic_num INT4 NOT NULL,
lang CHAR(2) NOT NULL
topic_name TEXT NOT NULL,
topic_description TEXT,
PRIMARY KEY (topic_num, lang)
);

View File

@ -302,6 +302,13 @@ while (@row = $result->fetchrow) {
$conn->exec($sql);
}
# i18n support in topic table
#
$conn->exec("CREATE TABLE topic_new (topic_num INT4 NOT NULL, PRIMARY KEY (topic_num)");
$conn->exec("CREATE TABLE topic_i18n (topic_num INT4 NOT NULL, lang CHAR(2) NOT NULL, topic_name TEXT NOT NULL, topic_description TEXT, PRIMARY KEY(topic_num, lang)");
$conn->exec("INSERT INTO topic_new SELECT topic_num FROM topic");
$conn->exec("INSERT INTO topic_i18n SELECT topic_num, 'EN' as lang, topic_name, topic_description FROM topic");
# Drop some fields from the document table
# Convert class to class_id
#
@ -409,6 +416,7 @@ $conn->exec("DROP TABLE maintainer");
$conn->exec("DROP TABLE maintainer_notes");
$conn->exec("DROP TABLE notes");
$conn->exec("DROP TABLE role");
$conn->exec("DROP TABLE topic");
$conn->exec("DROP TABLE username");
$conn->exec("DROP TABLE volunteer");
$conn->exec("ALTER TABLE class_new RENAME TO class");
@ -417,30 +425,9 @@ $conn->exec("ALTER TABLE document_wiki_new RENAME TO document_wiki");
$conn->exec("ALTER TABLE doc_vote_new RENAME TO doc_vote");
$conn->exec("ALTER TABLE notes_new RENAME TO notes");
$conn->exec("ALTER TABLE role_new RENAME TO role");
$conn->exec("ALTER TABLE topic_new RENAME TO topic");
$conn->exec("ALTER TABLE username_new RENAME TO username");
# Update permissions for the new tables
#
$conn->exec('GRANT ALL ON class TO "www-data"');
$conn->exec('GRANT ALL ON class_i18n TO "www-data"');
$conn->exec('GRANT ALL ON document TO "www-data"');
$conn->exec('GRANT ALL ON document_error TO "www-data"');
$conn->exec('GRANT ALL ON document_user TO "www-data"');
$conn->exec('GRANT ALL ON document_wiki TO "www-data"');
$conn->exec('GRANT ALL ON document_file TO "www-data"');
$conn->exec('GRANT ALL ON doc_vote TO "www-data"');
$conn->exec('GRANT ALL ON dtd TO "www-data"');
$conn->exec('GRANT ALL ON format TO "www-data"');
$conn->exec('GRANT ALL ON license TO "www-data"');
$conn->exec('GRANT ALL ON notes TO "www-data"');
$conn->exec('GRANT ALL ON pub_status TO "www-data"');
$conn->exec('GRANT ALL ON review_status TO "www-data"');
$conn->exec('GRANT ALL ON role TO "www-data"');
$conn->exec('GRANT ALL ON subtopic TO "www-data"');
$conn->exec('GRANT ALL ON topic TO "www-data"');
$conn->exec('GRANT ALL ON username TO "www-data"');
$conn->exec('GRANT ALL ON username_notes TO "www-data"');
# Alter the case of the classes
#
#$conn->exec("UPDATE class_i18n SET class_name='Backgrounder' WHERE class_name='BACKGROUNDER'");