mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
- initialize database migration
- create database if it does not exist
This commit is contained in:
parent
d5436646e5
commit
5bb5fda6e5
@ -1,2 +0,0 @@
|
|||||||
INSERT INTO `address_types` (`id`, `name`, `text`) VALUES
|
|
||||||
(1, 'user main', 'user main address');
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
INSERT INTO `blockchain_types` (`id`, `name`, `text`, `symbol`) VALUES
|
|
||||||
(1, 'mysql', 'use mysql db as blockchain, work only with single community-server', NULL),
|
|
||||||
(2, 'hedera', 'use hedera for transactions', 'HBAR');
|
|
||||||
|
|
||||||
|
|
||||||
@ -1,2 +0,0 @@
|
|||||||
INSERT INTO `migrations` (`id`, `db_version`) VALUES
|
|
||||||
(1, 3);
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
CREATE TABLE `address_types` (
|
|
||||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
||||||
`name` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL,
|
|
||||||
`text` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
|
|
||||||
@ -1,11 +0,0 @@
|
|||||||
CREATE TABLE `admin_errors` (
|
|
||||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
||||||
`state_user_id` int(11) NOT NULL,
|
|
||||||
`controller` varchar(255) NOT NULL,
|
|
||||||
`action` varchar(255) NOT NULL,
|
|
||||||
`state` varchar(255) NOT NULL,
|
|
||||||
`msg` varchar(255) NOT NULL,
|
|
||||||
`details` varchar(255) DEFAULT NULL,
|
|
||||||
`created` datetime NOT NULL,
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
||||||
@ -1,17 +0,0 @@
|
|||||||
/*
|
|
||||||
* To change this license header, choose License Headers in Project Properties.
|
|
||||||
* To change this template file, choose Tools | Templates
|
|
||||||
* and open the template in the editor.
|
|
||||||
*/
|
|
||||||
/**
|
|
||||||
* Author: einhornimmond
|
|
||||||
* Created: 06.04.2021
|
|
||||||
*/
|
|
||||||
|
|
||||||
CREATE TABLE `blockchain_types` (
|
|
||||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
||||||
`name` varchar(45) NOT NULL,
|
|
||||||
`text` varchar(255) NULL,
|
|
||||||
`symbol` varchar(10) NULL,
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
CREATE TABLE `community_profiles` (
|
|
||||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
||||||
`state_user_id` int(10) unsigned NOT NULL,
|
|
||||||
`profile_img` longblob,
|
|
||||||
`profile_desc` varchar(2000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
|
||||||
PRIMARY KEY (`id`),
|
|
||||||
KEY `state_user_id` (`state_user_id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
CREATE TABLE `migrations` (
|
|
||||||
`id` int UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
||||||
`db_version` int DEFAULT 0,
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
CREATE TABLE `operator_types` (
|
|
||||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
||||||
`name` varchar(25) COLLATE utf8mb4_unicode_ci NOT NULL,
|
|
||||||
`text` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
CREATE TABLE `operators` (
|
|
||||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
||||||
`username` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
|
|
||||||
`user_pubkey` binary(32) NOT NULL,
|
|
||||||
`data_base64` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
|
||||||
`modified` datetime NOT NULL,
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
CREATE TABLE `pending_transactions` (
|
|
||||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
||||||
`transactionID` varchar(25) COLLATE utf8mb4_unicode_ci NOT NULL,
|
|
||||||
`service` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL,
|
|
||||||
`method` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL,
|
|
||||||
`h_server_id` int(11) NOT NULL,
|
|
||||||
`timeout` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
||||||
PRIMARY KEY (`id`),
|
|
||||||
UNIQUE KEY `transactionID` (`transactionID`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
CREATE TABLE `roles` (
|
|
||||||
`id` int UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
||||||
`title` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
@ -1,12 +0,0 @@
|
|||||||
CREATE TABLE `server_users` (
|
|
||||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
||||||
`username` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
|
|
||||||
`password` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
|
||||||
`email` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
|
|
||||||
`role` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'admin',
|
|
||||||
`activated` tinyint(4) NOT NULL DEFAULT '0',
|
|
||||||
`last_login` datetime DEFAULT NULL,
|
|
||||||
`created` datetime NOT NULL,
|
|
||||||
`modified` datetime NOT NULL,
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
CREATE TABLE `state_balances` (
|
|
||||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
||||||
`state_user_id` int(10) unsigned NOT NULL,
|
|
||||||
`modified` datetime NOT NULL,
|
|
||||||
`record_date`datetime NULL,
|
|
||||||
`amount` bigint(20) NOT NULL,
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
@ -1,11 +0,0 @@
|
|||||||
CREATE TABLE `state_created` (
|
|
||||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
||||||
`transaction_id` int(10) unsigned NOT NULL,
|
|
||||||
`month` tinyint(3) unsigned NOT NULL,
|
|
||||||
`year` smallint(5) unsigned NOT NULL,
|
|
||||||
`state_user_id` int(10) unsigned NOT NULL,
|
|
||||||
`created` datetime NOT NULL,
|
|
||||||
`short_ident_hash` int(10) unsigned NOT NULL,
|
|
||||||
PRIMARY KEY (`id`),
|
|
||||||
KEY `short_ident_hash` (`short_ident_hash`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
CREATE TABLE `state_errors` (
|
|
||||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
||||||
`state_user_id` int(10) unsigned NOT NULL,
|
|
||||||
`transaction_type_id` int(10) unsigned NOT NULL,
|
|
||||||
`created` datetime NOT NULL,
|
|
||||||
`message_json` text COLLATE utf8mb4_unicode_ci NOT NULL,
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
CREATE TABLE `state_group_addresses` (
|
|
||||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
||||||
`group_id` int(10) unsigned NOT NULL,
|
|
||||||
`public_key` binary(32) NOT NULL,
|
|
||||||
`address_type_id` int(10) unsigned NOT NULL,
|
|
||||||
PRIMARY KEY (`id`),
|
|
||||||
UNIQUE(`public_key`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
CREATE TABLE `state_group_relationships` (
|
|
||||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
||||||
`group1_id` int(10) unsigned NOT NULL,
|
|
||||||
`group2_id` int(10) unsigned NOT NULL,
|
|
||||||
`state_relationship_id` int(10) unsigned NOT NULL,
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
CREATE TABLE `state_groups` (
|
|
||||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
||||||
`index_id` varbinary(64) NOT NULL,
|
|
||||||
`name` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
|
|
||||||
`root_public_key` binary(32) NOT NULL,
|
|
||||||
`user_count` smallint(5) unsigned NOT NULL DEFAULT '0',
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
CREATE TABLE `state_relationship_types` (
|
|
||||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
||||||
`name` varchar(25) COLLATE utf8mb4_unicode_ci NOT NULL,
|
|
||||||
`text` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
CREATE TABLE `state_user_roles` (
|
|
||||||
`id` int UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
||||||
`state_user_id` int(11) NOT NULL,
|
|
||||||
`role_id` int(11) NOT NULL,
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
@ -1,9 +0,0 @@
|
|||||||
CREATE TABLE `state_user_transactions` (
|
|
||||||
`id` int UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
||||||
`state_user_id` int UNSIGNED NOT NULL,
|
|
||||||
`transaction_id` int UNSIGNED NOT NULL,
|
|
||||||
`transaction_type_id` int UNSIGNED NOT NULL,
|
|
||||||
`balance` bigint(20) DEFAULT 0,
|
|
||||||
`balance_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
@ -1,13 +0,0 @@
|
|||||||
CREATE TABLE `state_users` (
|
|
||||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
||||||
`index_id` smallint(6) NOT NULL DEFAULT '0',
|
|
||||||
`group_id` int(10) unsigned NOT NULL DEFAULT '0',
|
|
||||||
`public_key` binary(32) NOT NULL,
|
|
||||||
`email` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
|
||||||
`first_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
|
||||||
`last_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
|
||||||
`username` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
|
||||||
`disabled` tinyint(4) DEFAULT '0',
|
|
||||||
PRIMARY KEY (`id`),
|
|
||||||
UNIQUE KEY `public_key` (`public_key`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
@ -1,9 +0,0 @@
|
|||||||
CREATE TABLE `transaction_creations` (
|
|
||||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
||||||
`transaction_id` int(10) unsigned NOT NULL,
|
|
||||||
`state_user_id` int(10) unsigned NOT NULL,
|
|
||||||
`amount` bigint(20) NOT NULL,
|
|
||||||
`ident_hash` binary(32) NULL,
|
|
||||||
`target_date` timestamp NULL DEFAULT NULL,
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
@ -1,9 +0,0 @@
|
|||||||
CREATE TABLE `transaction_group_addaddress` (
|
|
||||||
`id` int unsigned NOT NULL AUTO_INCREMENT,
|
|
||||||
`transaction_id` int unsigned NOT NULL,
|
|
||||||
`address_type_id` int unsigned NOT NULL,
|
|
||||||
`remove_from_group` BOOLEAN DEFAULT FALSE,
|
|
||||||
`public_key` binary(32) NOT NULL,
|
|
||||||
`state_user_id` int unsigned NOT NULL,
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
CREATE TABLE `transaction_group_allowtrades` (
|
|
||||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
||||||
`transaction_id` int(10) unsigned NOT NULL,
|
|
||||||
`remote_group_id` varbinary(64) NOT NULL,
|
|
||||||
`allow` tinyint(4) NOT NULL DEFAULT '0',
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
CREATE TABLE `transaction_group_creates` (
|
|
||||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
||||||
`transaction_id` int(10) unsigned NOT NULL,
|
|
||||||
`group_public_key` binary(32) NOT NULL,
|
|
||||||
`group_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
|
||||||
`name` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
@ -1,11 +0,0 @@
|
|||||||
CREATE TABLE `transaction_send_coins` (
|
|
||||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
||||||
`transaction_id` int(10) unsigned NOT NULL,
|
|
||||||
`sender_public_key` binary(32) NOT NULL,
|
|
||||||
`state_user_id` int(10) unsigned DEFAULT 0,
|
|
||||||
`receiver_public_key` binary(32) NOT NULL,
|
|
||||||
`receiver_user_id` int(10) unsigned DEFAULT 0,
|
|
||||||
`amount` bigint(20) NOT NULL,
|
|
||||||
`sender_final_balance` bigint(20) NOT NULL,
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
CREATE TABLE `transaction_signatures` (
|
|
||||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
||||||
`transaction_id` int(10) unsigned NOT NULL,
|
|
||||||
`signature` binary(64) NOT NULL,
|
|
||||||
`pubkey` binary(32) NOT NULL,
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
CREATE TABLE `transaction_types` (
|
|
||||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
||||||
`name` varchar(90) COLLATE utf8mb4_unicode_ci NOT NULL,
|
|
||||||
`text` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
CREATE TABLE `transactions` (
|
|
||||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
|
|
||||||
`state_group_id` int(10) unsigned DEFAULT NULL,
|
|
||||||
`transaction_type_id` int(10) unsigned NOT NULL,
|
|
||||||
`tx_hash` binary(48) DEFAULT NULL,
|
|
||||||
`memo` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
|
||||||
`received` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
`blockchain_type_id` bigint(20) unsigned NOT NULL DEFAULT 1,
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
@ -1,13 +1,342 @@
|
|||||||
|
/* FIRST MIGRATION
|
||||||
|
*
|
||||||
|
* This migration is special since it takes into account that
|
||||||
|
* the database can be setup already but also may not be.
|
||||||
|
* Therefore you will find all `CREATE TABLE` statements with
|
||||||
|
* a `IF NOT EXISTS`, all `INSERT` with an `IGNORE` and in the
|
||||||
|
* downgrade function all `DROP TABLE` with a `IF EXISTS`.
|
||||||
|
* This ensures compatibility for existing or non-existing
|
||||||
|
* databases.
|
||||||
|
*/
|
||||||
|
|
||||||
export async function upgrade(queryFn: (query: string, values?: any[]) => Promise<Array<any>>) {
|
export async function upgrade(queryFn: (query: string, values?: any[]) => Promise<Array<any>>) {
|
||||||
// write upgrade logic as parameter of queryFn
|
// write upgrade logic as parameter of queryFn
|
||||||
await queryFn(`
|
await queryFn(`
|
||||||
CREATE TABLE TEST (ID INTEGER NULL, NAME VARCHAR(20) NULL);
|
CREATE TABLE IF NOT EXISTS \`address_types\` (
|
||||||
|
\`id\` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
\`name\` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
\`text\` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
PRIMARY KEY (\`id\`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
`)
|
`)
|
||||||
|
await queryFn(`
|
||||||
|
INSERT IGNORE INTO \`address_types\` (\`id\`, \`name\`, \`text\`) VALUES
|
||||||
|
(1, 'user main', 'user main address');`)
|
||||||
|
|
||||||
|
await queryFn(`
|
||||||
|
CREATE TABLE IF NOT EXISTS \`admin_errors\` (
|
||||||
|
\`id\` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
\`state_user_id\` int(11) NOT NULL,
|
||||||
|
\`controller\` varchar(255) NOT NULL,
|
||||||
|
\`action\` varchar(255) NOT NULL,
|
||||||
|
\`state\` varchar(255) NOT NULL,
|
||||||
|
\`msg\` varchar(255) NOT NULL,
|
||||||
|
\`details\` varchar(255) DEFAULT NULL,
|
||||||
|
\`created\` datetime NOT NULL,
|
||||||
|
PRIMARY KEY (\`id\`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;`)
|
||||||
|
|
||||||
|
await queryFn(`
|
||||||
|
CREATE TABLE IF NOT EXISTS \`blockchain_types\` (
|
||||||
|
\`id\` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
\`name\` varchar(45) NOT NULL,
|
||||||
|
\`text\` varchar(255) NULL,
|
||||||
|
\`symbol\` varchar(10) NULL,
|
||||||
|
PRIMARY KEY (\`id\`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;`)
|
||||||
|
await queryFn(`
|
||||||
|
INSERT IGNORE INTO \`blockchain_types\` (\`id\`, \`name\`, \`text\`, \`symbol\`) VALUES
|
||||||
|
(1, 'mysql', 'use mysql db as blockchain, work only with single community-server', NULL),
|
||||||
|
(2, 'hedera', 'use hedera for transactions', 'HBAR');`)
|
||||||
|
|
||||||
|
await queryFn(`
|
||||||
|
CREATE TABLE IF NOT EXISTS \`community_profiles\` (
|
||||||
|
\`id\` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
\`state_user_id\` int(10) unsigned NOT NULL,
|
||||||
|
\`profile_img\` longblob,
|
||||||
|
\`profile_desc\` varchar(2000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
PRIMARY KEY (\`id\`),
|
||||||
|
KEY \`state_user_id\` (\`state_user_id\`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;`)
|
||||||
|
|
||||||
|
await queryFn(`
|
||||||
|
CREATE TABLE IF NOT EXISTS \`operator_types\` (
|
||||||
|
\`id\` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
\`name\` varchar(25) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
\`text\` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
PRIMARY KEY (\`id\`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;`)
|
||||||
|
|
||||||
|
await queryFn(`
|
||||||
|
CREATE TABLE IF NOT EXISTS \`operators\` (
|
||||||
|
\`id\` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
\`username\` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
\`user_pubkey\` binary(32) NOT NULL,
|
||||||
|
\`data_base64\` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
\`modified\` datetime NOT NULL,
|
||||||
|
PRIMARY KEY (\`id\`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;`)
|
||||||
|
|
||||||
|
await queryFn(`
|
||||||
|
CREATE TABLE IF NOT EXISTS \`pending_transactions\` (
|
||||||
|
\`id\` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
\`transactionID\` varchar(25) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
\`service\` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
\`method\` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
\`h_server_id\` int(11) NOT NULL,
|
||||||
|
\`timeout\` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
|
PRIMARY KEY (\`id\`),
|
||||||
|
UNIQUE KEY \`transactionID\` (\`transactionID\`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;`)
|
||||||
|
|
||||||
|
await queryFn(`
|
||||||
|
CREATE TABLE IF NOT EXISTS \`roles\` (
|
||||||
|
\`id\` int UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
|
\`title\` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
PRIMARY KEY (\`id\`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;`)
|
||||||
|
|
||||||
|
await queryFn(`
|
||||||
|
CREATE TABLE IF NOT EXISTS \`server_users\` (
|
||||||
|
\`id\` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
\`username\` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
\`password\` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
\`email\` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
\`role\` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'admin',
|
||||||
|
\`activated\` tinyint(4) NOT NULL DEFAULT '0',
|
||||||
|
\`last_login\` datetime DEFAULT NULL,
|
||||||
|
\`created\` datetime NOT NULL,
|
||||||
|
\`modified\` datetime NOT NULL,
|
||||||
|
PRIMARY KEY (\`id\`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;`)
|
||||||
|
|
||||||
|
await queryFn(`
|
||||||
|
CREATE TABLE IF NOT EXISTS \`state_balances\` (
|
||||||
|
\`id\` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
\`state_user_id\` int(10) unsigned NOT NULL,
|
||||||
|
\`modified\` datetime NOT NULL,
|
||||||
|
\`record_date\`datetime NULL,
|
||||||
|
\`amount\` bigint(20) NOT NULL,
|
||||||
|
PRIMARY KEY (\`id\`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;`)
|
||||||
|
|
||||||
|
await queryFn(`
|
||||||
|
CREATE TABLE IF NOT EXISTS \`state_created\` (
|
||||||
|
\`id\` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
\`transaction_id\` int(10) unsigned NOT NULL,
|
||||||
|
\`month\` tinyint(3) unsigned NOT NULL,
|
||||||
|
\`year\` smallint(5) unsigned NOT NULL,
|
||||||
|
\`state_user_id\` int(10) unsigned NOT NULL,
|
||||||
|
\`created\` datetime NOT NULL,
|
||||||
|
\`short_ident_hash\` int(10) unsigned NOT NULL,
|
||||||
|
PRIMARY KEY (\`id\`),
|
||||||
|
KEY \`short_ident_hash\` (\`short_ident_hash\`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;`)
|
||||||
|
|
||||||
|
await queryFn(`
|
||||||
|
CREATE TABLE IF NOT EXISTS \`state_errors\` (
|
||||||
|
\`id\` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
\`state_user_id\` int(10) unsigned NOT NULL,
|
||||||
|
\`transaction_type_id\` int(10) unsigned NOT NULL,
|
||||||
|
\`created\` datetime NOT NULL,
|
||||||
|
\`message_json\` text COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
PRIMARY KEY (\`id\`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;`)
|
||||||
|
|
||||||
|
await queryFn(`
|
||||||
|
CREATE TABLE IF NOT EXISTS \`state_group_addresses\` (
|
||||||
|
\`id\` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
\`group_id\` int(10) unsigned NOT NULL,
|
||||||
|
\`public_key\` binary(32) NOT NULL,
|
||||||
|
\`address_type_id\` int(10) unsigned NOT NULL,
|
||||||
|
PRIMARY KEY (\`id\`),
|
||||||
|
UNIQUE(\`public_key\`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;`)
|
||||||
|
|
||||||
|
await queryFn(`
|
||||||
|
CREATE TABLE IF NOT EXISTS \`state_group_relationships\` (
|
||||||
|
\`id\` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
\`group1_id\` int(10) unsigned NOT NULL,
|
||||||
|
\`group2_id\` int(10) unsigned NOT NULL,
|
||||||
|
\`state_relationship_id\` int(10) unsigned NOT NULL,
|
||||||
|
PRIMARY KEY (\`id\`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;`)
|
||||||
|
|
||||||
|
await queryFn(`
|
||||||
|
CREATE TABLE IF NOT EXISTS \`state_groups\` (
|
||||||
|
\`id\` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
\`index_id\` varbinary(64) NOT NULL,
|
||||||
|
\`name\` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
\`root_public_key\` binary(32) NOT NULL,
|
||||||
|
\`user_count\` smallint(5) unsigned NOT NULL DEFAULT '0',
|
||||||
|
PRIMARY KEY (\`id\`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;`)
|
||||||
|
|
||||||
|
await queryFn(`
|
||||||
|
CREATE TABLE IF NOT EXISTS \`state_relationship_types\` (
|
||||||
|
\`id\` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
\`name\` varchar(25) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
\`text\` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
PRIMARY KEY (\`id\`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;`)
|
||||||
|
|
||||||
|
await queryFn(`
|
||||||
|
CREATE TABLE IF NOT EXISTS \`state_user_roles\` (
|
||||||
|
\`id\` int UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
|
\`state_user_id\` int(11) NOT NULL,
|
||||||
|
\`role_id\` int(11) NOT NULL,
|
||||||
|
PRIMARY KEY (\`id\`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;`)
|
||||||
|
|
||||||
|
await queryFn(`
|
||||||
|
CREATE TABLE IF NOT EXISTS \`state_user_transactions\` (
|
||||||
|
\`id\` int UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
|
\`state_user_id\` int UNSIGNED NOT NULL,
|
||||||
|
\`transaction_id\` int UNSIGNED NOT NULL,
|
||||||
|
\`transaction_type_id\` int UNSIGNED NOT NULL,
|
||||||
|
\`balance\` bigint(20) DEFAULT 0,
|
||||||
|
\`balance_date\` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
PRIMARY KEY (\`id\`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;`)
|
||||||
|
|
||||||
|
await queryFn(`
|
||||||
|
CREATE TABLE IF NOT EXISTS \`state_users\` (
|
||||||
|
\`id\` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
\`index_id\` smallint(6) NOT NULL DEFAULT '0',
|
||||||
|
\`group_id\` int(10) unsigned NOT NULL DEFAULT '0',
|
||||||
|
\`public_key\` binary(32) NOT NULL,
|
||||||
|
\`email\` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
\`first_name\` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
\`last_name\` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
\`username\` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
\`disabled\` tinyint(4) DEFAULT '0',
|
||||||
|
PRIMARY KEY (\`id\`),
|
||||||
|
UNIQUE KEY \`public_key\` (\`public_key\`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;`)
|
||||||
|
|
||||||
|
await queryFn(`
|
||||||
|
CREATE TABLE IF NOT EXISTS \`transaction_creations\` (
|
||||||
|
\`id\` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
\`transaction_id\` int(10) unsigned NOT NULL,
|
||||||
|
\`state_user_id\` int(10) unsigned NOT NULL,
|
||||||
|
\`amount\` bigint(20) NOT NULL,
|
||||||
|
\`ident_hash\` binary(32) NULL,
|
||||||
|
\`target_date\` timestamp NULL DEFAULT NULL,
|
||||||
|
PRIMARY KEY (\`id\`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
`)
|
||||||
|
|
||||||
|
await queryFn(`
|
||||||
|
CREATE TABLE IF NOT EXISTS \`transaction_group_addaddress\` (
|
||||||
|
\`id\` int unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
\`transaction_id\` int unsigned NOT NULL,
|
||||||
|
\`address_type_id\` int unsigned NOT NULL,
|
||||||
|
\`remove_from_group\` BOOLEAN DEFAULT FALSE,
|
||||||
|
\`public_key\` binary(32) NOT NULL,
|
||||||
|
\`state_user_id\` int unsigned NOT NULL,
|
||||||
|
PRIMARY KEY (\`id\`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;`)
|
||||||
|
|
||||||
|
await queryFn(`
|
||||||
|
CREATE TABLE IF NOT EXISTS \`transaction_group_allowtrades\` (
|
||||||
|
\`id\` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
\`transaction_id\` int(10) unsigned NOT NULL,
|
||||||
|
\`remote_group_id\` varbinary(64) NOT NULL,
|
||||||
|
\`allow\` tinyint(4) NOT NULL DEFAULT '0',
|
||||||
|
PRIMARY KEY (\`id\`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;`)
|
||||||
|
|
||||||
|
await queryFn(`
|
||||||
|
CREATE TABLE IF NOT EXISTS \`transaction_group_creates\` (
|
||||||
|
\`id\` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
\`transaction_id\` int(10) unsigned NOT NULL,
|
||||||
|
\`group_public_key\` binary(32) NOT NULL,
|
||||||
|
\`group_id\` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
\`name\` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
PRIMARY KEY (\`id\`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;`)
|
||||||
|
|
||||||
|
await queryFn(`
|
||||||
|
CREATE TABLE IF NOT EXISTS \`transaction_send_coins\` (
|
||||||
|
\`id\` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
\`transaction_id\` int(10) unsigned NOT NULL,
|
||||||
|
\`sender_public_key\` binary(32) NOT NULL,
|
||||||
|
\`state_user_id\` int(10) unsigned DEFAULT 0,
|
||||||
|
\`receiver_public_key\` binary(32) NOT NULL,
|
||||||
|
\`receiver_user_id\` int(10) unsigned DEFAULT 0,
|
||||||
|
\`amount\` bigint(20) NOT NULL,
|
||||||
|
\`sender_final_balance\` bigint(20) NOT NULL,
|
||||||
|
PRIMARY KEY (\`id\`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;`)
|
||||||
|
|
||||||
|
await queryFn(`
|
||||||
|
CREATE TABLE IF NOT EXISTS \`transaction_signatures\` (
|
||||||
|
\`id\` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
\`transaction_id\` int(10) unsigned NOT NULL,
|
||||||
|
\`signature\` binary(64) NOT NULL,
|
||||||
|
\`pubkey\` binary(32) NOT NULL,
|
||||||
|
PRIMARY KEY (\`id\`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;`)
|
||||||
|
|
||||||
|
await queryFn(`
|
||||||
|
CREATE TABLE IF NOT EXISTS \`transaction_types\` (
|
||||||
|
\`id\` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
\`name\` varchar(90) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
\`text\` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
PRIMARY KEY (\`id\`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;`)
|
||||||
|
await queryFn(`
|
||||||
|
INSERT IGNORE INTO \`transaction_types\` (\`id\`, \`name\`, \`text\`) VALUES
|
||||||
|
(1, 'creation', 'create new gradidos for member and also for group (in development)'),
|
||||||
|
(2, 'transfer', 'send gradidos from one member to another, also cross group transfer'),
|
||||||
|
(3, 'group create', 'create a new group, trigger creation of new hedera topic and new blockchain on node server'),
|
||||||
|
(4, 'group add member', 'add user to a group or move if he was already in a group'),
|
||||||
|
(5, 'group remove member', 'remove user from group, maybe he was moved elsewhere'),
|
||||||
|
(6, 'hedera topic create', 'create new topic on hedera'),
|
||||||
|
(7, 'hedera topic send message', 'send consensus message over hedera topic'),
|
||||||
|
(8, 'hedera account create', 'create new account on hedera for holding some founds with unencrypted keys'),
|
||||||
|
(9, 'decay start', 'signalize the starting point for decay calculation, allowed only once per chain');`)
|
||||||
|
|
||||||
|
await queryFn(`
|
||||||
|
CREATE TABLE IF NOT EXISTS \`transactions\` (
|
||||||
|
\`id\` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
\`state_group_id\` int(10) unsigned DEFAULT NULL,
|
||||||
|
\`transaction_type_id\` int(10) unsigned NOT NULL,
|
||||||
|
\`tx_hash\` binary(48) DEFAULT NULL,
|
||||||
|
\`memo\` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
\`received\` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
\`blockchain_type_id\` bigint(20) unsigned NOT NULL DEFAULT 1,
|
||||||
|
PRIMARY KEY (\`id\`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;`)
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function downgrade(queryFn: (query: string, values?: any[]) => Promise<Array<any>>) {
|
export async function downgrade(queryFn: (query: string, values?: any[]) => Promise<Array<any>>) {
|
||||||
// write downgrade logic as parameter of queryFn
|
// write downgrade logic as parameter of queryFn
|
||||||
await queryFn(`
|
await queryFn(`DROP TABLE IF EXISTS \`address_types\`;`)
|
||||||
DROP TABLE TEST;
|
await queryFn(`DROP TABLE IF EXISTS \`admin_errors\`;`)
|
||||||
`)
|
await queryFn(`DROP TABLE IF EXISTS \`blockchain_types\`;`)
|
||||||
|
await queryFn(`DROP TABLE IF EXISTS \`community_profiles\`;`)
|
||||||
|
await queryFn(`DROP TABLE IF EXISTS \`operator_types\`;`)
|
||||||
|
await queryFn(`DROP TABLE IF EXISTS \`operators\`;`)
|
||||||
|
await queryFn(`DROP TABLE IF EXISTS \`pending_transactions\`;`)
|
||||||
|
await queryFn(`DROP TABLE IF EXISTS \`roles\`;`)
|
||||||
|
await queryFn(`DROP TABLE IF EXISTS \`server_users\`;`)
|
||||||
|
await queryFn(`DROP TABLE IF EXISTS \`state_balances\`;`)
|
||||||
|
await queryFn(`DROP TABLE IF EXISTS \`state_created\`;`)
|
||||||
|
await queryFn(`DROP TABLE IF EXISTS \`state_errors\`;`)
|
||||||
|
await queryFn(`DROP TABLE IF EXISTS \`state_group_addresses\`;`)
|
||||||
|
await queryFn(`DROP TABLE IF EXISTS \`state_group_relationships\`;`)
|
||||||
|
await queryFn(`DROP TABLE IF EXISTS \`state_groups\`;`)
|
||||||
|
await queryFn(`DROP TABLE IF EXISTS \`state_relationship_types\`;`)
|
||||||
|
await queryFn(`DROP TABLE IF EXISTS \`state_user_roles\`;`)
|
||||||
|
await queryFn(`DROP TABLE IF EXISTS \`state_user_transactions\`;`)
|
||||||
|
await queryFn(`DROP TABLE IF EXISTS \`state_users\`;`)
|
||||||
|
await queryFn(`DROP TABLE IF EXISTS \`transaction_creations\`;`)
|
||||||
|
await queryFn(`DROP TABLE IF EXISTS \`transaction_group_addaddress\`;`)
|
||||||
|
await queryFn(`DROP TABLE IF EXISTS \`transaction_group_allowtrades\`;`)
|
||||||
|
await queryFn(`DROP TABLE IF EXISTS \`transaction_group_creates\`;`)
|
||||||
|
await queryFn(`DROP TABLE IF EXISTS \`transaction_send_coins\`;`)
|
||||||
|
await queryFn(`DROP TABLE IF EXISTS \`transaction_signatures\`;`)
|
||||||
|
await queryFn(`DROP TABLE IF EXISTS \`transaction_types\`;`)
|
||||||
|
await queryFn(`DROP TABLE IF EXISTS \`transactions\`;`)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -13,9 +13,9 @@
|
|||||||
"up": "node build/src/index.js up",
|
"up": "node build/src/index.js up",
|
||||||
"down": "node build/src/index.js down",
|
"down": "node build/src/index.js down",
|
||||||
"reset": "node build/src/index.js reset",
|
"reset": "node build/src/index.js reset",
|
||||||
"dev_up": "nodemon -w src --ext ts --exec ts-node src/index.ts up",
|
"dev_up": "nodemon -w ./ --ext ts --exec ts-node src/index.ts up",
|
||||||
"dev_down": "nodemon -w src --ext ts --exec ts-node src/index.ts down",
|
"dev_down": "nodemon -w ./ --ext ts --exec ts-node src/index.ts down",
|
||||||
"dev_reset": "nodemon -w src --ext ts --exec ts-node src/index.ts reset",
|
"dev_reset": "nodemon -w ./ --ext ts --exec ts-node src/index.ts reset",
|
||||||
"lint": "eslint . --ext .js,.ts"
|
"lint": "eslint . --ext .js,.ts"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|||||||
@ -1,8 +1,11 @@
|
|||||||
import { createPool, PoolConfig } from 'mysql'
|
import { createPool, PoolConfig } from 'mysql'
|
||||||
import { Migration } from 'ts-mysql-migrate'
|
import { Migration } from 'ts-mysql-migrate'
|
||||||
import CONFIG from './config'
|
import CONFIG from './config'
|
||||||
|
import prepare from './prepare'
|
||||||
|
|
||||||
const run = async (command: string) => {
|
const run = async (command: string) => {
|
||||||
|
await prepare()
|
||||||
|
|
||||||
// Database connection
|
// Database connection
|
||||||
const poolConfig: PoolConfig = {
|
const poolConfig: PoolConfig = {
|
||||||
host: CONFIG.DB_HOST,
|
host: CONFIG.DB_HOST,
|
||||||
|
|||||||
27
database/src/prepare.ts
Normal file
27
database/src/prepare.ts
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
/* PREPARE SCRIPT
|
||||||
|
*
|
||||||
|
* This file ensures operations our migration library
|
||||||
|
* can not take care of are done.
|
||||||
|
* This applies to all Database Operations like
|
||||||
|
* creating, deleting, renaming Databases.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { createConnection } from 'mysql'
|
||||||
|
import CONFIG from './config'
|
||||||
|
|
||||||
|
export default async () => {
|
||||||
|
const con = createConnection({
|
||||||
|
host: CONFIG.DB_HOST,
|
||||||
|
port: CONFIG.DB_PORT,
|
||||||
|
user: CONFIG.DB_USER,
|
||||||
|
password: CONFIG.DB_PASSWORD,
|
||||||
|
})
|
||||||
|
|
||||||
|
await con.connect()
|
||||||
|
|
||||||
|
// Create Databse `gradido_community`
|
||||||
|
await con.query(`
|
||||||
|
CREATE DATABASE IF NOT EXISTS ${CONFIG.DB_DATABASE}
|
||||||
|
DEFAULT CHARACTER SET utf8mb4
|
||||||
|
DEFAULT COLLATE utf8mb4_unicode_ci;`)
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user