From 9db98b0ebe15dca528e6dc93e7b9a42b00f37289 Mon Sep 17 00:00:00 2001 From: Trevor Slocum Date: Sat, 26 Apr 2025 00:06:00 -0700 Subject: [PATCH] Fix migrating to PostgreSQL database --- README.md | 2 +- imgboard.php | 3 ++- inc/database/pdo_link.php | 24 ++++++++++++------------ 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 46ba8b8..5d28916 100644 --- a/README.md +++ b/README.md @@ -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. diff --git a/imgboard.php b/imgboard.php index 3e0f069..02f2939 100644 --- a/imgboard.php +++ b/imgboard.php @@ -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, diff --git a/inc/database/pdo_link.php b/inc/database/pdo_link.php index dd61bff..e85e08d 100644 --- a/inc/database/pdo_link.php +++ b/inc/database/pdo_link.php @@ -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) {