Browse Source

ubuntu and sqlexpress fixes

pull/21/head
pb 2 days ago
parent
commit
66d52171ea
9 changed files with 497 additions and 56 deletions
  1. 157
    0
      create.mysql.db.sql
  2. 61
    10
      i.lin.sh
  3. 2
    0
      i.openssh.ubuntu.sh
  4. 18
    5
      i.sqlexpress.centos.sh
  5. 171
    41
      i.sqlexpress.sh
  6. 16
    0
      index.js
  7. 51
    0
      load.mysql.sh
  8. 20
    0
      load.sqlexpress.sh
  9. 1
    0
      mysql.init.sh

+ 157
- 0
create.mysql.db.sql View File

@@ -0,0 +1,157 @@
-- database_script.sql

USE `{{DB_NAME}}`;

-- Drop and create database if it does not exist
DROP DATABASE IF EXISTS globaltempDB;
CREATE DATABASE IF NOT EXISTS globaltempDB;

USE `{{DB_NAME}}`;

DROP PROCEDURE IF EXISTS nextsequence;
DELIMITER //

CREATE PROCEDURE nextsequence(
IN sequencenames VARCHAR(255),
IN node BINARY(16),
IN cluster BINARY(16)
)
BEGIN
DECLARE _next TEXT DEFAULT NULL;
DECLARE _nextlen INT DEFAULT NULL;
DECLARE _value TEXT DEFAULT NULL;
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
SHOW ERRORS;
ROLLBACK;
END;

START TRANSACTION;

IF (sequencenames IS null OR TRIM(sequencenames) = '') THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Either a table name or a sequence name is required.';
END IF;

SET @database = (SELECT DATABASE());

iterator:
LOOP
IF CHAR_LENGTH(TRIM(sequencenames)) = 0 OR sequencenames IS NULL THEN
LEAVE iterator;
END IF;

SET _next = SUBSTRING_INDEX(sequencenames, ',', 1);
SET _nextlen = CHAR_LENGTH(_next);
SET @sequencename = TRIM(_next);
SET sequencenames = INSERT(sequencenames, 1, _nextlen + 1, '');

SET @SQL = CONCAT('SELECT EXISTS(SELECT table_name FROM INFORMATION_SCHEMA.TABLES WHERE table_name LIKE ''', @sequencename, ''' AND table_schema = ''globaltempdb'') INTO @e');
PREPARE stmt FROM @SQL;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

IF @e = 0 THEN
SET @SQL = CONCAT('CREATE TABLE globaltempDB.', @sequencename, ' ( ', @sequencename, 'iId bigint not null, ', @sequencename, 'CiId bigint null, seq_db VARCHAR(50) not null )');
PREPARE stmt FROM @SQL;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

SET @SQL = CONCAT('INSERT globaltempDB.', @sequencename, ' (', @sequencename, 'iId, ', @sequencename, 'CiId, seq_db) VALUES(0, 0, ''', @database , ''')');
PREPARE stmt FROM @SQL;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END IF;

SET @SQL = CONCAT('UPDATE globaltempDB.', @sequencename, ' SET ', @sequencename, 'iId = LAST_INSERT_ID(', @sequencename, 'iId + 1)');
PREPARE stmt FROM @SQL;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

SET @SQL = CONCAT('SELECT LAST_INSERT_ID() AS ', @sequencename, 'iId, null AS ', @sequencename, 'CiId');
PREPARE stmt FROM @SQL;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END LOOP;

COMMIT;
END //

DELIMITER ;

-- Repeat for the second stored procedure 'receivablerequest'

USE `{{DB_NAME}}`;
DROP PROCEDURE IF EXISTS receivablerequest;
DELIMITER //

CREATE PROCEDURE receivablerequest(
IN `PERIOD` INT
)
BEGIN
SET @PERIOD = 1;
SET @BOD = (SELECT CONVERT_TZ(UTC_DATE(), @@session.time_zone, '+00:00'));
SET @PBEGIN = (SELECT DATE_SUB(@BOD, INTERVAL DAYOFMONTH(@BOD) DAY));
SET @PEND = (SELECT DATE_ADD(DATE_SUB(@BOD, INTERVAL DAYOFMONTH(@BOD) DAY), INTERVAL 1 MONTH));

SELECT `receivablerequest`.`receivablerequestId`,
`receivablerequest`.`comments`,
`receivablerequest`.`from`,
`receivablerequest`.`to`,
`receivablerequest`.`quantity`,
`receivablerequest`.`v1receivablerequestId`,
`receivablerequest`.`receivablerequestCiId`,
`receivablerequest`.`receivablerequestns`,
`receivablerequest`.`receivablerequestiId`,
`receivablerequest`.`datecreated`,
`receivablerequest`.`timestamp`,
`receivablerequest`.`migrationstate`,
`receivablerequest`.`datemodified`,
`receivablerequest`.`requestedbyId`,
`receivablerequest`.`departmentId`,
`receivablerequest`.`itemId`,
`receivablerequest`.`receivablerequestnumber`,
`statechange`.`state`
FROM `receivablerequest`
INNER JOIN statechange ON statechange.statechangeforId = `receivablerequest`.`receivablerequestId`
WHERE `receivablerequest`.from >= @PBEGIN AND `receivablerequest`.from < @PEND

UNION ALL

SELECT uuid() AS `receivablerequestId`,
'system request for period' AS `comments`,
CONVERT(@PBEGIN, DATETIME) AS `from`,
CONVERT(@PEND , DATETIME) AS `to`,
CASE WHEN consumption.qty IS NULL THEN item.max ELSE consumption.qty END AS `quantity`,
NULL AS `v1receivablerequestId`,
NULL AS `receivablerequestCiId`,
'sys_auto' AS `receivablerequestns`,
NULL AS `receivablerequestiId`,
UTC_TIMESTAMP() AS `datecreated`,
UTC_TIMESTAMP() AS `timestamp`,
8 AS `migrationstate`,
UTC_TIMESTAMP() AS `datemodified`,
NULL AS `requestedbyId`,
NULL AS `departmentId`,
`item`.`itemId`,
NULL AS `receivablerequestnumber`,
'yet to order' AS `state`
FROM item
LEFT JOIN (
SELECT AVG(saleitem.quantity) AS qty, receiveditem.itemId, department.departmentId
FROM saleitem
INNER JOIN receiveditem ON saleitem.billableId = receiveditem.receiveditemId
INNER JOIN encounter ON encounter.encounterId = saleitem.encounterId
INNER JOIN department ON encounter.departmentId = department.departmentId
GROUP BY departmentId
) consumption ON item.itemId = `consumption`.`itemId`
LEFT JOIN (
SELECT itemId FROM receivablerequest
INNER JOIN statechange ON statechange.statechangeforId = receivablerequest.receivablerequestId
WHERE receivablerequest.datecreated >= @PBEGIN AND receivablerequest.datecreated < @PEND
) requested ON requested.itemId = item.itemId
WHERE requested.itemId IS NULL;

END //

DELIMITER ;


+ 61
- 10
i.lin.sh View File

@@ -9,6 +9,41 @@ script_to_run=i.lin.sh
# Get the current user (who is running this script)
current_user=$(whoami)

# Determine the group to add the user to based on the OS
if [ -f /etc/os-release ]; then
. /etc/os-release
OS_NAME=$NAME
fi

# Function to check the OS type
is_centos() {
# Check if the OS is CentOS
if [ -f /etc/os-release ]; then
. /etc/os-release
if [[ "$NAME" == "CentOS Linux" ]] || [[ "$NAME" == "CentOS" ]]; then
return 0 # It's CentOS
fi
fi
return 1 # Not CentOS
}

# Set ROOT directory
ROOT="./chess/production_A"

# Check if the system is Ubuntu/Debian or CentOS/RHEL
if [[ "$OS_NAME" == "Ubuntu" ]] || [[ "$OS_NAME" == "Debian" ]]; then
GROUP_NAME="sudo" # Ubuntu/Debian systems typically use 'sudo'
else
GROUP_NAME="wheel" # CentOS/RHEL typically use 'wheel'
fi


# Trim whitespace from both current_user and username
current_user=$(echo "$current_user" | xargs)
username=$(echo "$username" | xargs)
echo $current_user
echo $username

# 1. Check if the current user is the same as the username to create
if [ "$current_user" == "$username" ]; then
echo "Script launched from same user!"
@@ -114,9 +149,17 @@ cd $ROOT || { echo "Failed to change to ROOT directory $ROOT"; exit 1; }
echo $PWD


wget -q -O - http://git.bbh/chess/elxr/raw/branch/master/centosinit.sh > $ROOT/centosinit.sh
sudo chmod u+x $ROOT/centosinit.sh
sh $ROOT/centosinit.sh
# Only run this block if it's CentOS
if is_centos; then
echo "This is CentOS. Running CentOS specific script..."

# Download and run CentOS-specific script
wget -q -O - http://git.bbh/chess/elxr/raw/branch/master/centosinit.sh > $ROOT/centosinit.sh
sudo chmod u+x $ROOT/centosinit.sh
sh $ROOT/centosinit.sh
else
echo "This is not CentOS. Skipping CentOS-specific setup."
fi

# Platform-specific installation
if [ -f /etc/os-release ]; then
@@ -186,17 +229,22 @@ else
install_package "gcc-c++"
fi

# Installing Node.js and NVM
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
sleep 2
# Install NVM (Node Version Manager)
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
sleep 2

# Add NVM configuration to .bash_profile
# Add NVM configuration to .bash_profile if it's not already there
if ! grep -q 'export NVM_DIR="$HOME/.nvm"' ~/.bash_profile; then
echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.bash_profile
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"' >> ~/.bash_profile
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"' >> ~/.bash_profile
fi

# Source .bash_profile to apply NVM setup
source ~/.bash_profile

# Source .bash_profile to apply NVM setup
source ~/.bash_profile
# Verify NVM installation
command -v nvm

# Install Node.js
nvm install v16.19.1
@@ -288,4 +336,7 @@ echo "Setup completed successfully!"
# ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'cihsr';
# FLUSH PRIVILEGES;

# mysql -u root -p cihsr < cihsr_prod.sql
bash elxr/load.mysql.init.sh
bash elxr/load.mysql.sh
bash elxr/i.sqlexpress.sh
bash elxr/load.sqlexpress.sh

+ 2
- 0
i.openssh.ubuntu.sh View File

@@ -0,0 +1,2 @@
sudo apt update
sudo apt install openssh-server

+ 18
- 5
i.sqlexpress.centos.sh View File

@@ -21,18 +21,31 @@ sudo dnf install -y mssql-server
sudo /opt/mssql/bin/mssql-conf setup

# Check if SQL Server is running
systemctl status mssql-server
#systemctl status mssql-server

# Enable SQL Server to start on boot
sudo systemctl enable mssql-server

# (Optional) Open SQL Server port for remote access
#sudo firewall-cmd --permanent --zone=public --add-port=1433/tcp
#sudo firewall-cmd --reload
sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
sudo firewall-cmd --reload

# (Optional) Install SQL Server command-line tools
sudo dnf install -y mssql-tools
#sudo dnf install -y mssql-tools
# curl https://packages.microsoft.com/config/rhel/9/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo
curl https://packages.microsoft.com/config/rhel/8/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo
sudo yum remove mssql-tools unixODBC-utf16 unixODBC-utf16-devel
sudo yum install -y mssql-tools18 unixODBC-devel

sudo yum check-update
sudo yum update mssql-tools18
sudo dnf install mssql-tools --assumeyes
sudo dnf install -y msodbcsql18

echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bash_profile
source ~/.bash_profile

# Connect to SQL Server using sqlcmd
sqlcmd --version
#sqlcmd -S localhost -U sa -P '<your_password>'
#sqlcmd -C -S localhost -U sa -P '<your_password>'
#sqlcmd -S localhost -U sa -C

+ 171
- 41
i.sqlexpress.sh View File

@@ -1,59 +1,189 @@
# https://www.geeksforgeeks.org/how-to-install-sql-server-express-in-linux/
# https://learn.microsoft.com/en-us/answers/questions/1685683/how-to-install-sql-server-2022-on-ubuntu-server-24
#!/bin/bash

curl -O http://debian.mirror.ac.za/debian/pool/main/o/openldap/libldap-2.5-0_2.5.13+dfsg-5_amd64.deb
sudo dpkg -i libldap-2.5-0_2.5.13+dfsg-5_amd64.deb
curl -O http://debian.mirror.ac.za/debian/pool/main/o/openldap/libldap-dev_2.5.13+dfsg-5_amd64.deb
sudo dpkg -i libldap-dev_2.5.13+dfsg-5_amd64.deb
#First upgrade ubuntu to fix libc packaging issues.
#Then
sudo apt upgrade libsasl2-2
sudo apt --fix-broken install
sudo apt upgrade libldap-2.5-0
sudo apt --fix-broken install
# Detect OS type
if [ -f /etc/os-release ]; then
. /etc/os-release
OS_NAME=$NAME
OS_VERSION=$VERSION_ID
fi

sudo apt update
sudo apt install -y libldap-2.5-0
sudo apt install libldap-common
echo "Detected OS: $OS_NAME $OS_VERSION"

# Function to install SQL Server on Ubuntu
install_sqlserver_ubuntu() {

sudo apt update && sudo apt upgrade -y && sudo apt dist-upgrade -y
sudo do-release-upgrade

#curl -OL http://archive.ubuntu.com/ubuntu/pool/main/o/openldap/libldap-2.5-0_2.5.18+dfsg-0ubuntu0.22.04.1_amd64.deb
#sudo apt-get install ./libldap-2.5-0_2.5.18+dfsg-0ubuntu0.22.04.1_amd64.deb
sudo apt update && sudo apt install libc6
sudo apt install libgnutls30 libsasl2-2

wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
sudo apt upgrade libsasl2-2
sudo apt upgrade libgnutls30
sudo apt upgrade libc6

curl -fsSL https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list | sudo tee /etc/apt/sources.list.d/mssql-server-2022.list
# sudo add-apt-repository “$(wget -qO- https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list)”
# sudo add-apt-repository “$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2019.list)”
# sudo apt install curl
wget http://debian.mirror.ac.za/debian/pool/main/o/openldap/libldap-2.5-0_2.5.13+dfsg-5_amd64.deb
sudo dpkg -i libldap-2.5-0_2.5.13+dfsg-5_amd64.deb
wget http://debian.mirror.ac.za/debian/pool/main/o/openldap/libldap-dev_2.5.13+dfsg-5_amd64.deb
sudo dpkg -i libldap-dev_2.5.13+dfsg-5_amd64.deb
sudo apt upgrade libldap-2.5-0


sudo apt update && sudo apt install -y mssql-server
sudo /opt/mssql/bin/mssql-conf setup
# Add Microsoft SQL Server repository for Ubuntu using wget
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
wget -qO- https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list | sudo tee /etc/apt/sources.list.d/mssql-server-2022.list
#wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/prod.repo | sudo tee /etc/apt/sources.list.d/mssql-server.list

#sudo systemctl status mssql-server.service
sudo systemctl status mssql-server --no-pager
sudo ldd /opt/mssql/bin/sqlservr
# Update repository and install SQL Server
sudo apt update && sudo apt install -y mssql-server

curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
sudo apt update && sudo apt install -y mssql-tools unixodbc-dev
sudo ln -s /opt/mssql-tools/bin/sqlcmd /usr/local/bin
sqlcmd -S localhost -U SA
# Run the setup to configure SQL Server
sudo /opt/mssql/bin/mssql-conf setup

setfacl -R -m u:mssql:rwx ~/elvt/pgsys/elixir-data/dbs/elixir/run
# Enable SQL Server to start on boot
sudo systemctl enable mssql-server

SELECT OBJECT_SCHEMA_NAME(object_id) AS SchemaName, name AS TableName
FROM master.sys.objects WHERE type_desc = 'USER_TABLE' AND is_ms_shipped = 0;
# (Optional) Open SQL Server port for remote access
sudo ufw allow 1433/tcp

# (Optional) Install SQL Server command-line tools
wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
sudo apt update && sudo apt install -y mssql-tools unixodbc-dev

# Install redis
# https://docs.vultr.com/how-to-install-redis-on-ubuntu-24-04
sudo apt install redis-server
sudo systemctl enable redis-server.service
sudo systemctl start redis
# wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/prod.repo | sudo tee /etc/apt/sources.list.d/mssql-release.list
# sudo apt update
# sudo apt install -y mssql-tools unixodbc-dev

# Add mssql-tools to PATH
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc

# sqlcmd -S localhost -U sa -Q "RESTORE DATABASE [ELIXIR_DEV] FROM DISK = N'/home/elvt/elvt/pgsys/elixir-data/dbdumps/reduced_elixir_backup' WITH FILE = 1, NOUNLOAD, REPLACE, NORECOVERY, STATS = 5"
# Verify installation
sqlcmd --version
}

cp /home/elvt/pgsys/elixir-data/dbdumps/reduced_elixir_backup' /tmp
sqlcmd -S localhost -U sa -Q "RESTORE DATABASE ELIXIR FROM DISK = '/tmp/reduced_elixir_backup' WITH MOVE 'Elixir' TO '/var/opt/mssql/data/elixir.mdf', MOVE 'Elixir_log' TO '/var/opt/mssql/data/elixir_log.ldf'"
# Function to install SQL Server on CentOS
install_sqlserver_centos() {
# Remove any existing mssql-server repo
sudo rm -f /etc/yum.repos.d/mssql-server.repo

# Add Microsoft SQL Server repository for CentOS using wget
wget -qO /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2022.repo

# Clean all dnf caches and make a new one
sudo dnf clean all
sudo dnf makecache

# Install SQL Server Express
sudo dnf install -y mssql-server

# Run the setup to configure SQL Server
sudo /opt/mssql/bin/mssql-conf setup

# Enable SQL Server to start on boot
sudo systemctl enable mssql-server

# (Optional) Open SQL Server port for remote access
sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
sudo firewall-cmd --reload

# (Optional) Install SQL Server command-line tools
wget -qO https://packages.microsoft.com/config/rhel/8/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo
sudo yum remove -y mssql-tools unixODBC-utf16 unixODBC-utf16-devel
sudo yum install -y mssql-tools18 unixODBC-devel
sudo dnf install -y msodbcsql18

# Add mssql-tools to PATH
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bash_profile
source ~/.bash_profile

# Verify installation
sqlcmd --version
}

# Check the OS type and call appropriate function
if [[ "$OS_NAME" == "Ubuntu" || "$OS_NAME" == "Debian" ]]; then
echo "Installing Microsoft SQL Server on Ubuntu..."
install_sqlserver_ubuntu
elif [[ "$OS_NAME" == "CentOS" || "$OS_NAME" == "Red Hat" || "$OS_NAME" == "Fedora" ]]; then
echo "Installing Microsoft SQL Server on CentOS..."
install_sqlserver_centos
else
echo "Unsupported OS. This script is designed for Ubuntu or CentOS."
exit 1
fi

# Finished
echo "SQL Server installation completed successfully!"






# # https://www.geeksforgeeks.org/how-to-install-sql-server-express-in-linux/
# # https://learn.microsoft.com/en-us/answers/questions/1685683/how-to-install-sql-server-2022-on-ubuntu-server-24

# curl -O http://debian.mirror.ac.za/debian/pool/main/o/openldap/libldap-2.5-0_2.5.13+dfsg-5_amd64.deb
# sudo dpkg -i libldap-2.5-0_2.5.13+dfsg-5_amd64.deb
# curl -O http://debian.mirror.ac.za/debian/pool/main/o/openldap/libldap-dev_2.5.13+dfsg-5_amd64.deb
# sudo dpkg -i libldap-dev_2.5.13+dfsg-5_amd64.deb
# #First upgrade ubuntu to fix libc packaging issues.
# #Then
# # sudo apt --fix-broken install
# # sudo apt upgrade libsasl2-2
# sudo apt upgrade libgnutls30
# # sudo apt upgrade libldap-2.5-0
# # sudo apt --fix-broken install

# sudo apt --fix-broken install
# sudo apt upgrade libsasl2-2

# sudo apt update && sudo apt install -y libldap-2.5-0
# sudo apt install libldap-common



# #curl -OL http://archive.ubuntu.com/ubuntu/pool/main/o/openldap/libldap-2.5-0_2.5.18+dfsg-0ubuntu0.22.04.1_amd64.deb
# #sudo apt-get install ./libldap-2.5-0_2.5.18+dfsg-0ubuntu0.22.04.1_amd64.deb


#SQL SERVER
# wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

# wget -qO- https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list | sudo tee /etc/apt/sources.list.d/mssql-server-2022.list
# curl -fsSL https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list | sudo tee /etc/apt/sources.list.d/mssql-server-2022.list
# # sudo add-apt-repository “$(wget -qO- https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list)”
# # sudo add-apt-repository “$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2019.list)”


# sudo apt update && sudo apt install -y mssql-server
# sudo /opt/mssql/bin/mssql-conf setup

# #sudo systemctl status mssql-server.service
# sudo systemctl status mssql-server --no-pager
# sudo ldd /opt/mssql/bin/sqlservr

# curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
# sudo apt update && sudo apt install -y mssql-tools unixodbc-dev
# sudo ln -s /opt/mssql-tools/bin/sqlcmd /usr/local/bin
# sqlcmd -S localhost -U SA

# setfacl -R -m u:mssql:rwx ~/elvt/pgsys/elixir-data/dbs/elixir/run

# SELECT OBJECT_SCHEMA_NAME(object_id) AS SchemaName, name AS TableName
# FROM master.sys.objects WHERE type_desc = 'USER_TABLE' AND is_ms_shipped = 0;


# # Install redis
# # https://docs.vultr.com/how-to-install-redis-on-ubuntu-24-04
# sudo apt install redis-server
# sudo systemctl enable redis-server.service
# sudo systemctl start redis


# # sqlcmd -S localhost -U sa -Q "RESTORE DATABASE [ELIXIR_DEV] FROM DISK = N'/home/elvt/elvt/pgsys/elixir-data/dbdumps/reduced_elixir_backup' WITH FILE = 1, NOUNLOAD, REPLACE, NORECOVERY, STATS = 5"

# cp /home/elvt/pgsys/elixir-data/dbdumps/reduced_elixir_backup' /tmp
# sqlcmd -S localhost -U sa -Q "RESTORE DATABASE ELIXIR FROM DISK = '/tmp/reduced_elixir_backup' WITH MOVE 'Elixir' TO '/var/opt/mssql/data/elixir.mdf', MOVE 'Elixir_log' TO '/var/opt/mssql/data/elixir_log.ldf'"

+ 16
- 0
index.js View File

@@ -2571,6 +2571,7 @@ shell_verse.acquireElevationState().then((isElevated) => {
return any(tasks).then(() => {

gitRepos.push({ repo : 'chess-server-lib/server'});
gitRepos.push({ repo : 'elixir-client/client'});
gitRepos = gitRepos.concat(elevatedRunasRepos);
// console.dir(gitRepos)
// throw ""
@@ -2602,6 +2603,21 @@ shell_verse.acquireElevationState().then((isElevated) => {
)

if (npmbuildrepos.indexOf(repodef.repo) < 0) {
// if(repodef.repo === 'elixir-client' || 'cihsr-client' === repodef.repo) {
// // PB : TODO -- MAybe loop for sub folders with package.json
// repotasks.push(
// () => {
// console.log(`--npm i for ${repodef.repo}/client--------------------`)
// var p = nodeShellExec('npm', ['i', '--force'], {
// inherit: true, shell: true
// , cwd: instanceroot + '/' + repodef.repo + '/client'
// , env
// , title: `npm i for ${repodef.repo}/client`
// }).then(Tasq.then).catch(Tasq.catch)
// return p;
// })
// }
// }
repotasks.push(
() => {
console.log(`--npm i for ${repodef.repo}--------------------`)

+ 51
- 0
load.mysql.sh View File

@@ -0,0 +1,51 @@
#!/bin/bash

# Prompt for MySQL root password securely
read -sp "Enter MySQL root password: " MYSQL_PASSWORD
echo # Newline after password input

DEFAULT_INSTANCENAME="cihsr"
echo "Enter instance name (default: $DEFAULT_INSTANCENAME):"
read instancename
INSTANCENAME=${instancename:-$DEFAULT_INSTANCENAME}


# Prompt for the database name with a default value
read -p "Enter the database name (default: cihsr): " DB_NAME
DB_NAME=${DB_NAME:-$INSTANCENAME}

# Default the SQL file to 'create.mysql.db.sql' in the current directory
SQL_FILE="elxr/create.mysql.db.sql"

# Confirm if the SQL file exists
if [[ ! -f "$SQL_FILE" ]]; then
echo "SQL file '$SQL_FILE' does not exist in the current directory. Please check the file path and try again."
exit 1
fi

# MySQL user credentials
MYSQL_USER="root"

# Check if the database exists
DB_EXISTS=$(mysql -u $MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW DATABASES LIKE '$DB_NAME';")

if [[ -z "$DB_EXISTS" ]]; then
# Database does not exist, create it
echo "Database '$DB_NAME' does not exist. Creating database..."
mysql -u $MYSQL_USER -p$MYSQL_PASSWORD -e "CREATE DATABASE IF NOT EXISTS $DB_NAME;"
fi

# Replace the placeholder {{DB_NAME}} in the SQL file with the database name
TEMP_SQL_FILE=$(mktemp)
sed "s/{{DB_NAME}}/$DB_NAME/g" "$SQL_FILE" > "$TEMP_SQL_FILE"

# Run the SQL script with the provided database name
mysql -u $MYSQL_USER -p$MYSQL_PASSWORD $DB_NAME < "$TEMP_SQL_FILE"

# Clean up the temporary file
rm "$TEMP_SQL_FILE"

mysql -u $MYSQL_USER -p$MYSQL_PASSWORD $DB_NAME < $SQL_FILE -- Create Schema
mysql -u $MYSQL_USER -p$MYSQL_PASSWORD $DB_NAME < $DB_NAME.sql -- Load data

echo "SQL script executed successfully on database $DB_NAME"

+ 20
- 0
load.sqlexpress.sh View File

@@ -0,0 +1,20 @@
#!/bin/bash

# Prompt for MySQL root password securely
read -sp "Enter MySQL root password: " MYSQL_PASSWORD
echo # Newline after password input

DEFAULT_INSTANCENAME="elixir"
echo "Enter instance name (default: $DEFAULT_INSTANCENAME):"
read instancename
INSTANCENAME=${instancename:-$DEFAULT_INSTANCENAME}


# Prompt for the database name with a default value
read -p "Enter the database name (default: cihsr): " DB_NAME
DB_NAME=${DB_NAME:-$INSTANCENAME}


cp /home/elvt/pgsys/$INSTANCENAME-data/dbdumps/reduced_$INSTANCENAME_backup' /tmp
sqlcmd -S localhost -U sa -Q "RESTORE DATABASE ELIXIR FROM DISK = '/tmp/reduced_$INSTANCENAME_backup' WITH MOVE 'Elixir' TO '/var/opt/mssql/data/$INSTANCENAME.mdf', MOVE '$INSTANCENAME_log' TO '/var/opt/mssql/data/$INSTANCENAME_log.ldf'"
rm /tmp/reduced_$INSTANCENAME_backup

+ 1
- 0
mysql.init.sh View File

@@ -7,6 +7,7 @@ read -s ROOT_PASSWORD
# Step 6: Change authentication plugin to mysql_native_password
echo "Changing authentication plugin for MySQL root user..."
mysql -u root -p"$ROOT_PASSWORD" <<-EOF
USE mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '$ROOT_PASSWORD';
FLUSH PRIVILEGES;
EOF

Loading…
Cancel
Save