| @@ -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 | |||