Fix migrating to PostgreSQL database

This commit is contained in:
Trevor Slocum 2025-04-26 00:06:00 -07:00
parent 90b1bcea8a
commit 9db98b0ebe
3 changed files with 15 additions and 14 deletions

View File

@ -1,6 +1,6 @@
# TinyIB - Lightweight and efficient [imageboard](https://en.wikipedia.org/wiki/Imageboard)
[![Translate](https://translate.codeberg.org/widget/tinyib/tinyib/svg-badge.svg)](https://translate.codeberg.org/projects/tinyib/tinyib/)
[![Donate via LiberaPay](https://img.shields.io/liberapay/receives/rocket9labs.com.svg?logo=liberapay)](https://liberapay.com/rocket9labs.com)
[![Donate](https://img.shields.io/liberapay/receives/rocket9labs.com.svg?logo=liberapay)](https://liberapay.com/rocket9labs.com)
A [**read-only demo**](https://tinyib.rocket9labs.com) is available.

View File

@ -81,7 +81,8 @@ if (!in_array(TINYIB_DBMODE, $database_modes)) {
fancyDie(__('Unknown database mode specified.'));
}
if (TINYIB_DBMODE == 'pdo' && TINYIB_DBDRIVER == 'pgsql') {
$schema_mode = (TINYIB_DBMIGRATE) ? TINYIB_DBMIGRATE : TINYIB_DBMODE;
if ($schema_mode == 'pdo' && TINYIB_DBDRIVER == 'pgsql') {
$accounts_sql = 'CREATE TABLE "' . TINYIB_DBACCOUNTS . '" (
"id" bigserial NOT NULL,
"username" varchar(255) NOT NULL,

View File

@ -99,45 +99,45 @@ if (TINYIB_DBDRIVER === 'pgsql') {
$query = "SELECT column_name FROM information_schema.columns WHERE table_name='" . TINYIB_DBPOSTS . "' and column_name='moderated'";
$moderated_exists = $dbh->query($query)->fetchColumn() != 0;
} else {
$dbh->query("SHOW COLUMNS FROM `" . TINYIB_DBPOSTS . "` LIKE 'moderated'");
$dbh->query("SHOW COLUMNS FROM " . TINYIB_DBPOSTS . " LIKE 'moderated'");
$moderated_exists = $dbh->query("SELECT FOUND_ROWS()")->fetchColumn() != 0;
}
if (!$moderated_exists) {
$dbh->exec("ALTER TABLE `" . TINYIB_DBPOSTS . "` ADD COLUMN moderated TINYINT(1) NOT NULL DEFAULT '1'");
$dbh->exec("ALTER TABLE " . TINYIB_DBPOSTS . " ADD COLUMN moderated TINYINT(1) NOT NULL DEFAULT '1'");
}
if (TINYIB_DBDRIVER === 'pgsql') {
$query = "SELECT column_name FROM information_schema.columns WHERE table_name='" . TINYIB_DBPOSTS . "' and column_name='stickied'";
$stickied_exists = $dbh->query($query)->fetchColumn() != 0;
} else {
$dbh->query("SHOW COLUMNS FROM `" . TINYIB_DBPOSTS . "` LIKE 'stickied'");
$dbh->query("SHOW COLUMNS FROM " . TINYIB_DBPOSTS . " LIKE 'stickied'");
$stickied_exists = $dbh->query("SELECT FOUND_ROWS()")->fetchColumn() != 0;
}
if (!$stickied_exists) {
$dbh->exec("ALTER TABLE `" . TINYIB_DBPOSTS . "` ADD COLUMN stickied TINYINT(1) NOT NULL DEFAULT '0'");
$dbh->exec("ALTER TABLE " . TINYIB_DBPOSTS . " ADD COLUMN stickied TINYINT(1) NOT NULL DEFAULT '0'");
}
if (TINYIB_DBDRIVER === 'pgsql') {
$query = "SELECT column_name FROM information_schema.columns WHERE table_name='" . TINYIB_DBPOSTS . "' and column_name='locked'";
$locked_exists = $dbh->query($query)->fetchColumn() != 0;
} else {
$dbh->query("SHOW COLUMNS FROM `" . TINYIB_DBPOSTS . "` LIKE 'locked'");
$dbh->query("SHOW COLUMNS FROM " . TINYIB_DBPOSTS . " LIKE 'locked'");
$locked_exists = $dbh->query("SELECT FOUND_ROWS()")->fetchColumn() != 0;
}
if (!$locked_exists) {
$dbh->exec("ALTER TABLE `" . TINYIB_DBPOSTS . "` ADD COLUMN locked TINYINT(1) NOT NULL DEFAULT '0'");
$dbh->exec("ALTER TABLE " . TINYIB_DBPOSTS . " ADD COLUMN locked TINYINT(1) NOT NULL DEFAULT '0'");
}
if (TINYIB_DBDRIVER === 'pgsql') {
$dbh->query("ALTER TABLE `" . TINYIB_DBPOSTS . "` ALTER COLUMN tripcode VARCHAR(24) NOT NULL DEFAULT ''");
$dbh->query("ALTER TABLE " . TINYIB_DBPOSTS . " ALTER COLUMN tripcode TYPE VARCHAR(24)");
$dbh->query("ALTER TABLE `" . TINYIB_DBPOSTS . "` ALTER COLUMN ip VARCHAR(255) NOT NULL DEFAULT ''");
$dbh->query("ALTER TABLE `" . TINYIB_DBBANS . "` ALTER COLUMN ip VARCHAR(255) NOT NULL DEFAULT ''");
$dbh->query("ALTER TABLE " . TINYIB_DBPOSTS . " ALTER COLUMN ip TYPE VARCHAR(255)");
$dbh->query("ALTER TABLE " . TINYIB_DBBANS . " ALTER COLUMN ip TYPE VARCHAR(255)");
} else {
$dbh->query("ALTER TABLE `" . TINYIB_DBPOSTS . "` MODIFY tripcode VARCHAR(24) NOT NULL DEFAULT ''");
$dbh->query("ALTER TABLE " . TINYIB_DBPOSTS . " MODIFY tripcode VARCHAR(24) NOT NULL DEFAULT ''");
$dbh->query("ALTER TABLE `" . TINYIB_DBPOSTS . "` MODIFY ip VARCHAR(255) NOT NULL DEFAULT ''");
$dbh->query("ALTER TABLE `" . TINYIB_DBBANS . "` MODIFY ip VARCHAR(255) NOT NULL DEFAULT ''");
$dbh->query("ALTER TABLE " . TINYIB_DBPOSTS . " MODIFY ip VARCHAR(255) NOT NULL DEFAULT ''");
$dbh->query("ALTER TABLE " . TINYIB_DBBANS . " MODIFY ip VARCHAR(255) NOT NULL DEFAULT ''");
}
function pdoQuery($sql, $params = false) {