This repository has been archived on 2025-01-04. You can view files and clone it, but cannot push or open issues or pull requests.
lwb6/legacyworlds-server-data/db-structure/database.sql
Emmanuel BENOîT 56eddcc4f0 Game updates improvements
* Added a set of tables which define game updates and their targets.
These definitions replace the old enumerate type. Added a set of
triggers which automatically create specific update tables, insert
missing entries, etc... when game update types are being manipulated.

* Removed manual insertion of game updates from empire creation
function and universe generator.

* Added registration of core update targets (i.e. planets and empires),
updated all existing game update processing functions and added type
registrations

* Created Maven project for game updates control components, moved
existing components from the -simple project, rewritten most of what
they contained, added new components for server-side update batch
processing
2012-02-03 16:25:03 +01:00

51 lines
1.4 KiB
PL/PgSQL

-- LegacyWorlds Beta 6
-- PostgreSQL database scripts
--
-- Main database loader script
--
-- Initialises the various roles and the database itself,
-- then processes scripts from the "parts" directory.
--
-- Copyright(C) 2004-2012, DeepClone Development
-- --------------------------------------------------------
-- Read configuration from file
\set pgadmin `grep ^admin= db-config.txt | sed -e s/.*=//`
\set dbname `grep ^db= db-config.txt | sed -e s/.*=//`
\set dbname_string '''':dbname''''
\set dbuser `grep ^user= db-config.txt | sed -e s/.*=//`
\set dbuser_string '''':dbuser''''
\set dbupass ''''`grep ^password= db-config.txt | sed -e s/.*=// -e "s/'/''/g"`''''
/* List all files in the "parts" directory and create a loader script from
* that.
*/
\! find parts -type f -name '*.sql' | sort | sed -e 's/^/\\i /' > loader.tmp
-- Connect to the main system database
\c postgres :pgadmin
-- Drop the database and users if they exist
DROP DATABASE IF EXISTS :dbname;
DROP ROLE IF EXISTS :dbuser;
-- Create the LW users
CREATE ROLE :dbuser WITH LOGIN ENCRYPTED PASSWORD :dbupass;
-- Create the database
CREATE DATABASE :dbname ENCODING='UTF8' TEMPLATE=template0;
GRANT CONNECT ON DATABASE :dbname TO :dbuser;
-- Connect to the LW database with the PostgreSQL admin user
\c :dbname :pgadmin
/* Load everything from the loader script */
BEGIN;
\i loader.tmp
COMMIT;
/* Delete loader script */
\! rm loader.tmp