diff --git a/README.md b/README.md index d12372eb..96720de9 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,11 @@ sudo ln -s /standardebooks.org/web/config/php/fpm/standardebooks.test.ini /etc/p sudo ln -s /standardebooks.org/web/config/php/fpm/standardebooks.test.ini /etc/php/*/fpm/conf.d/ sudo ln -s /standardebooks.org/web/config/php/fpm/standardebooks.test.conf /etc/php/*/fpm/pool.d/ sudo systemctl restart "php*-fpm.service" + +# Create and populate the SE database. +mariadb < /standardebooks.org/web/config/sql/se.sql +mariadb < /standardebooks.org/web/config/sql/users.sql +mariadb se < /standardebooks.org/web/config/sql/se/*.sql ``` If everything went well you should now be able to open your web browser and visit `https://standardebooks.test`. However, you won’t see any ebooks if you visit `https://standardebooks.test/ebooks`. To install some ebooks, first you have to clone their source from GitHub, then deploy them to your local website using the `./scripts/deploy-ebook-to-www` script: diff --git a/config/sql/se.sql b/config/sql/se.sql new file mode 100644 index 00000000..9313a6da --- /dev/null +++ b/config/sql/se.sql @@ -0,0 +1 @@ +CREATE DATABASE IF NOT EXISTS `se` DEFAULT CHARACTER SET = 'utf8mb4' DEFAULT COLLATE 'utf8mb4_general_ci' diff --git a/config/sql/se/ArtistAlternateNames.sql b/config/sql/se/ArtistAlternateNames.sql index 1b6f6bec..b003177f 100644 --- a/config/sql/se/ArtistAlternateNames.sql +++ b/config/sql/se/ArtistAlternateNames.sql @@ -1,4 +1,4 @@ -CREATE TABLE `ArtistAlternateNames` ( +CREATE TABLE IF NOT EXISTS `ArtistAlternateNames` ( `ArtistId` int(10) unsigned NOT NULL, `Name` varchar(255) NOT NULL, `UrlName` varchar(255) NOT NULL, diff --git a/config/sql/se/Artists.sql b/config/sql/se/Artists.sql index d6f34a25..13a7300e 100644 --- a/config/sql/se/Artists.sql +++ b/config/sql/se/Artists.sql @@ -1,4 +1,4 @@ -CREATE TABLE `Artists` ( +CREATE TABLE IF NOT EXISTS `Artists` ( `ArtistId` int(10) unsigned NOT NULL AUTO_INCREMENT, `Name` varchar(255) NOT NULL, `UrlName` varchar(255) NOT NULL, diff --git a/config/sql/se/ArtworkTags.sql b/config/sql/se/ArtworkTags.sql index 263bcfc1..3a5ed9c0 100644 --- a/config/sql/se/ArtworkTags.sql +++ b/config/sql/se/ArtworkTags.sql @@ -1,4 +1,4 @@ -CREATE TABLE `ArtworkTags` ( +CREATE TABLE IF NOT EXISTS `ArtworkTags` ( `ArtworkId` int(10) unsigned NOT NULL, `TagId` int(10) unsigned NOT NULL, UNIQUE KEY `idxUnique` (`ArtworkId`,`TagId`) diff --git a/config/sql/se/Artworks.sql b/config/sql/se/Artworks.sql index 4262bfb8..8935af82 100644 --- a/config/sql/se/Artworks.sql +++ b/config/sql/se/Artworks.sql @@ -1,4 +1,4 @@ -CREATE TABLE `Artworks` ( +CREATE TABLE IF NOT EXISTS `Artworks` ( `ArtworkId` int(10) unsigned NOT NULL AUTO_INCREMENT, `ArtistId` int(10) unsigned NOT NULL, `Name` varchar(255) NOT NULL, @@ -19,7 +19,7 @@ CREATE TABLE `Artworks` ( `EbookUrl` varchar(255) NULL, `MimeType` enum('image/jpeg', 'image/png', 'image/bmp', 'image/tiff') NOT NULL, `Exception` TEXT NULL DEFAULT NULL, - `Notes` TEXT NULL DEFAULT NULL + `Notes` TEXT NULL DEFAULT NULL, PRIMARY KEY (`ArtworkId`), KEY `index1` (`Status`), KEY `index2` (`UrlName`), diff --git a/config/sql/se/Benefits.sql b/config/sql/se/Benefits.sql index 1299e466..b0910bad 100644 --- a/config/sql/se/Benefits.sql +++ b/config/sql/se/Benefits.sql @@ -1,4 +1,4 @@ -CREATE TABLE `Benefits` ( +CREATE TABLE IF NOT EXISTS `Benefits` ( `UserId` int(10) unsigned NOT NULL, `CanAccessFeeds` tinyint(1) unsigned NOT NULL DEFAULT 0, `CanVote` tinyint(1) unsigned NOT NULL DEFAULT 0, diff --git a/config/sql/se/FeedUserAgents.sql b/config/sql/se/FeedUserAgents.sql index 227b56fe..e2f817d0 100644 --- a/config/sql/se/FeedUserAgents.sql +++ b/config/sql/se/FeedUserAgents.sql @@ -1,4 +1,4 @@ -CREATE TABLE `FeedUserAgents` ( +CREATE TABLE IF NOT EXISTS `FeedUserAgents` ( `UserAgentId` int(10) unsigned NOT NULL AUTO_INCREMENT, `UserAgent` text NOT NULL, `Created` datetime NOT NULL, diff --git a/config/sql/se/Museums.sql b/config/sql/se/Museums.sql index 2d71cdf3..fa35378d 100644 --- a/config/sql/se/Museums.sql +++ b/config/sql/se/Museums.sql @@ -1,4 +1,4 @@ -CREATE TABLE `Museums` ( +CREATE TABLE IF NOT EXISTS `Museums` ( `MuseumId` int(10) unsigned NOT NULL AUTO_INCREMENT, `Name` varchar(255) NOT NULL, `Domain` varchar(255) NOT NULL, diff --git a/config/sql/se/NewsletterSubscriptions.sql b/config/sql/se/NewsletterSubscriptions.sql index f7889f0b..22c3fd1b 100644 --- a/config/sql/se/NewsletterSubscriptions.sql +++ b/config/sql/se/NewsletterSubscriptions.sql @@ -1,4 +1,4 @@ -CREATE TABLE `NewsletterSubscriptions` ( +CREATE TABLE IF NOT EXISTS `NewsletterSubscriptions` ( `UserId` int(10) unsigned NOT NULL, `IsConfirmed` tinyint(1) unsigned NOT NULL DEFAULT 0, `IsSubscribedToNewsletter` tinyint(1) unsigned NOT NULL DEFAULT 1, diff --git a/config/sql/se/Patrons.sql b/config/sql/se/Patrons.sql index 74f8a79f..a3143564 100644 --- a/config/sql/se/Patrons.sql +++ b/config/sql/se/Patrons.sql @@ -1,4 +1,4 @@ -CREATE TABLE `Patrons` ( +CREATE TABLE IF NOT EXISTS `Patrons` ( `UserId` int(10) unsigned NOT NULL, `IsAnonymous` tinyint(1) unsigned NOT NULL DEFAULT 0, `AlternateName` varchar(80) DEFAULT NULL, diff --git a/config/sql/se/Payments.sql b/config/sql/se/Payments.sql index 89a03c78..1434b3a5 100644 --- a/config/sql/se/Payments.sql +++ b/config/sql/se/Payments.sql @@ -1,4 +1,4 @@ -CREATE TABLE `Payments` ( +CREATE TABLE IF NOT EXISTS `Payments` ( `PaymentId` int(10) unsigned NOT NULL AUTO_INCREMENT, `UserId` int(10) unsigned DEFAULT NULL, `Created` datetime NOT NULL, diff --git a/config/sql/se/PendingPayments.sql b/config/sql/se/PendingPayments.sql index 0ebe5cf9..49ca538a 100644 --- a/config/sql/se/PendingPayments.sql +++ b/config/sql/se/PendingPayments.sql @@ -1,4 +1,4 @@ -CREATE TABLE `PendingPayments` ( +CREATE TABLE IF NOT EXISTS `PendingPayments` ( `Created` datetime NOT NULL, `Processor` enum('fractured_atlas') NOT NULL, `TransactionId` varchar(80) NOT NULL, diff --git a/config/sql/se/PollItems.sql b/config/sql/se/PollItems.sql index ea46b8a7..041a3a72 100644 --- a/config/sql/se/PollItems.sql +++ b/config/sql/se/PollItems.sql @@ -1,4 +1,4 @@ -CREATE TABLE `PollItems` ( +CREATE TABLE IF NOT EXISTS `PollItems` ( `PollItemId` int(10) unsigned NOT NULL AUTO_INCREMENT, `PollId` int(10) unsigned NOT NULL, `Name` varchar(255) NOT NULL, diff --git a/config/sql/se/PollVotes.sql b/config/sql/se/PollVotes.sql index d57736db..75be2279 100644 --- a/config/sql/se/PollVotes.sql +++ b/config/sql/se/PollVotes.sql @@ -1,4 +1,4 @@ -CREATE TABLE `PollVotes` ( +CREATE TABLE IF NOT EXISTS `PollVotes` ( `UserId` int(10) unsigned NOT NULL, `PollItemId` int(10) unsigned NOT NULL, `Created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, diff --git a/config/sql/se/Polls.sql b/config/sql/se/Polls.sql index 88ba4f4d..6e79a425 100644 --- a/config/sql/se/Polls.sql +++ b/config/sql/se/Polls.sql @@ -1,4 +1,4 @@ -CREATE TABLE `Polls` ( +CREATE TABLE IF NOT EXISTS `Polls` ( `PollId` int(10) unsigned NOT NULL AUTO_INCREMENT, `Created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `Name` varchar(255) NOT NULL, diff --git a/config/sql/se/Sessions.sql b/config/sql/se/Sessions.sql index a1901349..a50e6b58 100644 --- a/config/sql/se/Sessions.sql +++ b/config/sql/se/Sessions.sql @@ -1,4 +1,4 @@ -CREATE TABLE `Sessions` ( +CREATE TABLE IF NOT EXISTS `Sessions` ( `UserId` int(10) unsigned NOT NULL, `Created` datetime NOT NULL, `SessionId` char(36) NOT NULL, diff --git a/config/sql/se/Tags.sql b/config/sql/se/Tags.sql index 4e232c34..863c7f1e 100644 --- a/config/sql/se/Tags.sql +++ b/config/sql/se/Tags.sql @@ -1,4 +1,4 @@ -CREATE TABLE `Tags` ( +CREATE TABLE IF NOT EXISTS `Tags` ( `TagId` int(10) unsigned NOT NULL AUTO_INCREMENT, `Name` varchar(255) NOT NULL, PRIMARY KEY (`TagId`), diff --git a/config/sql/se/Users.sql b/config/sql/se/Users.sql index a9fa4219..8d809eb4 100644 --- a/config/sql/se/Users.sql +++ b/config/sql/se/Users.sql @@ -1,4 +1,4 @@ -CREATE TABLE `Users` ( +CREATE TABLE IF NOT EXISTS `Users` ( `UserId` int(10) unsigned NOT NULL AUTO_INCREMENT, `Email` varchar(80) DEFAULT NULL, `Name` varchar(255) DEFAULT NULL, diff --git a/config/sql/users.sql b/config/sql/users.sql index ba8df981..53941457 100644 --- a/config/sql/users.sql +++ b/config/sql/users.sql @@ -1,6 +1,6 @@ -create user 'se'@'localhost' identified via unix_socket; -create user 'www-data'@'localhost' identified via unix_socket; -create user 'se-vcs-bot'@'localhost' identified via unix_socket; +create user if not exists 'se'@'localhost' identified via unix_socket; +create user if not exists 'www-data'@'localhost' identified via unix_socket; +create user if not exists 'se-vcs-bot'@'localhost' identified via unix_socket; grant select, insert, update, delete, execute, lock tables on se.* to 'se'@'localhost' identified via unix_socket; grant select, insert, update, delete, execute on se.* to 'www-data'@'localhost' identified via unix_socket;