@@ -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 ; | |||
@@ -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 |
@@ -0,0 +1,2 @@ | |||
sudo apt update | |||
sudo apt install openssh-server |
@@ -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 |
@@ -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'" |
@@ -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}--------------------`) |
@@ -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" |
@@ -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 |
@@ -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 |