Cpdb
Приложение oscript для копирования баз данных 1C / MS SQL и развертывания на целевой системе.
Install / Use
/learn @arkuznetsov/CpdbREADME
<a href="https://checkbsl.org"><img alt="Checked by Silver Bulleters SonarQube BSL plugin" src="https://web-files.do.bit-erp.ru/sonar/b_t.png" align="right" style="width:400px"/></a>
1C Database copier (cpdb)
Библиотека и приложение для получения информации о базах 1С, копирования баз 1C и развертывания на целевой системе.
<a id="dependencies"></a> Требуются следующие библиотеки и инструменты
- 1commands
- logos
- v8runner
- v8storage
- cli
- yadisk
- nextcloud-lib
- ClientSSH
- ParserFileV8i
- 7-zip
- MS Command Line Utilities for SQL Server (sqlcmd)
<a id="application"></a> Команды приложения
Типичный сценарий работы
- Сформировать резервную копию базы
- Передать резервную копию на целевую систему
- Через общую папку / С использованием Yandex-Диск
- Возможно разбиение больших файлов на части (используется 7-zip)
- Восстановить резервную копию в новую или существующую базу
- Подключить базу к хранилищу конфигурации
|||| |-|-|-| |database | Группа команд работы с СУБД|| || create | - Создание базы MS SQL || || backup | - Создание резервной копии базы MS SQL || || restore | - Восстановление базы MS SQL из резервной копии | || compress | - Выполнить компрессию страниц таблиц и индекстов в базе MS SQL | || drop | - Удаление базы MS SQL || || script | - Выполнить произвольный скрипт на сервере MS SQL | |infobase | Группа команд работы с информационными базами 1С|| || create-srv-ib | - Создать информационную базу на сервере 1С | || create-file-ib | - Создать файловую информационную базу 1С | || dump | - Выгрузить информационную базу в файл | || restore | - Загрузить информационную базу из файла | || clearcache | - Очистить локальный кэш информационных баз 1С | || uconstorage | - Отключить информационную базу от хранилища конфигураций | || constorage | - Подключить информационную базу к хранилищу конфигураций | |file | Группа команд работы с файлами|| || copy | - Копировать/переместить файлы | || split | - Архивировать файл с разбиением на части указанного размера (используется 7-Zip) | || merge | - Разархивировать файл (используется 7-Zip) | || mapdrive | - Подключить сетевой диск | || umapdrive | - Отключить сетевой диск | | yadisk | Группа команд работы с сервисом Yandex-Диск | || put | - Помещение файла на Yandex-Диск | || get | - Получение файла из Yandex-Диска | | nextcloud | Группа команд работы с сервисом NextCloud | || put | - Помещение файла в сервис NextCloud | || get | - Получение файла из сервиса NextCloud | | sftp | Группа команд работы с SFTP-сервером | || put | - Помещение файла на сервер SFTP | || get | - Получение файла с сервера SFTP | | batch | - Последовательное выполнение команд по сценариям, заданным в файлах (json) | ||||
Для подсказки по конкретной команде наберите <команда> --help
<a id="database"></a> database - Группа команд работы с СУБД
| Общие параметры для команд группы: || |-|-| | --srvr | - Адрес сервера MS SQL | | --user | - Пользователь сервера | | --pwd | - Пароль пользователя сервера |
create - Создание базы MS SQL
| Параметры: || |-|-| | --params | - Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)| | --db | - Имя базы для восстановления | | --db-recovery | - Установить модель восстановления (RECOVERY MODEL), возможные значения "FULL", "SIMPLE", "BULK_LOGGED" |
Пример
cpdb database --srvr MySQLName --user sa --pwd 12345 create --db MyDatabase --db-recovery SIMPLE
backup - Создание резервной копии базы MS SQL
| Параметры: || |-|-| | --params | - Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)| | --db | - Имя базы для восстановления | | --bak-path | - Путь к резервной копии |
Пример
cpdb database --srvr MySQLName --user sa --pwd 12345 backup --db MyDatabase --bak-path "d:\MSSQL\Backup\MyDatabase_copy.bak"
restore - Восстановление базы MS SQL из резервной копии
| Параметры: || |-|-| | --params | - Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)| | --db | - Имя базы для восстановления | | --bak-path | - Путь к резервной копии | | --create-db | - Создать базу в случае отсутствия | | --db-owner | - Имя владельца базы после восстановления | | --compress-db | - Включить компрессию страниц таблиц и индексов после восстановления | | --shrink-db | - Сжать файлы данных после восстановления | | --shrink-log | - Сжать файлы журнала транзакций после восстановления | | --db-path | - Путь к каталогу файлов данных базы после восстановления | | --db-logpath | - Путь к каталогу файлов журнала после восстановления | | --db-recovery | - Установить модель восстановления (RECOVERY MODEL), возможные значения "FULL", "SIMPLE", "BULK_LOGGED" | | --db-changelfn | - Изменить логические имена файлов (LFN) базы, в соответствии с именем базы | | --delsrc | - Удалить файл резервной копии после восстановления |
Пример
cpdb database --srvr MyNewSQLServer --user SQLUser --pwd 123456 restore --db MyDatabase_copy --bak-path "d:\data\MyBackUpfile.bak" --create-db --shrink-db --db-owner SQLdbo --db-path "d:\MSSQL\data" --db-logpath "e:\MSSQL\logs" --db-recovery SIMPLE --delsrc
compress - Выполнить компрессию страниц таблиц и индекстов в базе MS SQL
| Параметры: || |-|-| | --params | - Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)| | --db | - Имя базы для восстановления | | --shrink-db | - Сжать базу после выполнения компрессии | | --shrink-log | - Сжать файлы журнала транзакций после восстановления |
Пример
cpdb database --srvr MyNewSQLServer --user SQLUser --pwd 123456 compress --db MyDatabase_copy --shrink-db
drop - Удаление базы MS SQL
| Параметры: || |-|-| | --params | - Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)| | --db | - Имя базы для восстановления |
Пример
cpdb database --srvr MySQLName --user sa --pwd 12345 drop --db MyDatabase
script - Выполнить скрипты из файла(ов)
| Параметры: || |-|-| | --params | - Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)| | --files | - Файлы SQL, содержащие текст скрипта, могут быть указаны несколько файлов, разделённые ";" | | --vars | - Строка значений переменных (без пробелов) для скриптов SQL в виде "<Имя>=<Значение>", разделенные ";" |
Пример
cpdb database --srvr MyNewSQLServer --user SQLUser --pwd 123456 script --params "./JSON/cpdb_env.json" --files "./tools/config_error.sql;./tools/print_message.sql" --vars "varBase=MyDB;message=\"Hello world\""
Пример config_error.sql
use $(varBase)
go
truncate table [dbo].[ConfigSave]
go
UPDATE SchemaStorage SET Status = 100
Пример print_message.sql
PRINT N'$(message)'
<a id="infobase"></a> infobase - Группа команд работы с информационной базой 1С
| Общие параметры для команд группы:
