Code Monkey home page Code Monkey logo

cpdb's Introduction

GitHub release GitHub license GitHub Releases GitHub All Releases

Build Status Quality Gate Coverage Tech debt

Checked by Silver Bulleters SonarQube BSL plugin

1C Database copier (cpdb)

Библиотека и приложение для получения информации о базах 1С, копирования баз 1C и развертывания на целевой системе.

Требуются следующие библиотеки и инструменты

Команды приложения


Типичный сценарий работы

  1. Сформировать резервную копию базы
  2. Передать резервную копию на целевую систему
    • Через общую папку / С использованием Yandex-Диск
    • Возможно разбиение больших файлов на части (используется 7-zip)
  3. Восстановить резервную копию в новую или существующую базу
  4. Подключить базу к хранилищу конфигурации
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

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)'

infobase - Группа команд работы с информационной базой 1С

Общие параметры для команд группы:
--v8version - маска версии платформы 1С (например: 8.3.8, 8.3.17.1851)

create-srv-ib - Создать информационную базу на сервере 1С

Параметры:
--params - Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--ib-srvr - Адрес кластера серверов 1С ([<протокол>://]<адрес>[:<порт>])
--ib-ref - Имя базы в кластере 1С
--err-if-exist - Сообщить об ошибке если ИБ в кластере 1С существует
--dbms - Тип сервера СУБД (MSSQLServer <по умолчанию>; PostgreSQL; IBMDB2; OracleDatabase)
--db-srvr - Адрес/имя сервера СУБД
--db-user - Пользователь сервера СУБД"
--db-pwd - Пароль пользователя сервера СУБД"
--db-name - Имя базы на сервере СУБД (если не указано, используется имя базы 1С)"
--sql-offs - Смещение дат на сервере MS SQL (0; 2000 <по умолчанию>)
--create-db - Создавать базу данных в случае отсутствия
--allow-sch-job - Разрешить регламентные задания
--allow-lic-dstr - Разрешить выдачу лицензий сервером 1С
--cadm-user - Имя администратора кластера
--cadm-pwd - Пароль администратора кластера
--name-in-list - Имя в списке баз пользователя (если не задано, то ИБ в список не добавляется)
--tmplt-path - Путь к шаблону для создания информационной базы (*.cf; *.dt). Если шаблон не указан, то будет создана пустая ИБ

Пример

cpdb infobase --v8version 8.3.8 create-srv-ib --ib-srvr My1CServer --ib-ref TST_DB_MyDomain --db-srvr MySQLServer --db-user _1CSrvUsr1 --db-pwd p@ssw0rd --db-name TST_DB_MyDomain --createdb --nameinlist "My test base" --errifexist

create-file-ib - Создать файловую информационную базу 1С

Параметры:
--params - Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--ib-path - Путь к каталогу базы 1С
--err-if-exist - Сообщить об ошибке если ИБ в кластере 1С существует
--name-in-list - Имя в списке баз пользователя (если не задано, то ИБ в список не добавляется)
--tmplt-path - Путь к шаблону для создания информационной базы (*.cf; *.dt). Если шаблон не указан, то будет создана пустая ИБ

Пример

cpdb infobase --v8version 8.3.8 create-file-ib --ib-path "D:\1cbases\My1CBase" --name-in-list "My test base" --err-if-exist

dump - Выгрузить информационную базу в файл

Параметры:
--params - Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--ib-path - Строка подключения к ИБ
--ib-user - Пользователь ИБ
--ib-pwd - Пароль пользователя ИБ
--dt-path - Путь к файлу для выгрузки ИБ
--uccode - Ключ разрешения запуска ИБ

Пример

cpdb infobase --v8version 8.3.8 dump --ib-path "/FD:/data/MyDatabase" --dt-path "d:\data\1Cv8.dt" --ib-user Администратор --ib-pwd 123456 --uccode 1234

restore - Загрузить информационную базу из файла

Параметры:
--params - Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--ib-path - Строка подключения к ИБ
--ib-user - Пользователь ИБ
--ib-pwd - Пароль пользователя ИБ
--dt-path - Путь к файлу для загрузки в ИБ
--jobs-count - Количество заданий загрузки файла (для клиент-серверной базы, начиная с версии платформы 8.3.19)
--uccode - Ключ разрешения запуска ИБ
--delsrc - Удалить файл после загрузки

Пример

cpdb infobase --v8version 8.3.8 restore --ib-path "/FD:/data/MyDatabase" --dt-path "d:\data\1Cv8.dt" --ib-user Администратор --ib-pwd 123456 --uccode 1234 -delsrc

clearcache - Очистить локальный кэш информационных баз 1С

Параметры:
--params - Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--ib-path - Строка подключения к ИБ (если не указан то удаляются локальные кэши всех информационных баз)

Пример

cpdb infobase clearcache --ib-path "/FD:/data/MyDatabase"

uconstorage - Отключить информационную базу от хранилища конфигурации

Параметры:
--params - Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--ib-path - Строка подключения к ИБ");
--ib-user - Пользователь ИБ");
--ib-pwd - Пароль пользователя ИБ");
--extension - Имя отключаемого расширения конфигурации
--uccode - Ключ разрешения запуска ИБ");

Пример

cpdb infobase --v8version 8.3.8 uconstorage --ib-path "/FD:/data/MyDatabase" --ib-user Администратор --ib-pwd 123456 --uccode 1234

constorage - Подключить информационую базу к хранилищу конфигурации

Параметры:
--params - Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--ib-path - Строка подключения к ИБ
--ib-user - Пользователь ИБ
--ib-pwd - Пароль пользователя ИБ
--extension - Имя подключаемого расширения конфигурации
--storage-path - Адрес хранилища конфигурации
--storage-user - Пользователь хранилища конфигурации
--storage-pwd - Пароль пользователя хранилища конфигурации
--update-ib - Выполнить обновление ИБ (применить полученную из хранилища конфигурацию к ИБ)
--uccode - Ключ разрешения запуска ИБ

Пример

cpdb infobase --v8version 8.3. constorage --ib-path "/FD:/data/MyDatabase" --ib-user Администратор --ib-pwd 123456 --storage-path "tcp://MyServer/MyRepository" --storage-user MyDatabase_usr1 --storage-pwd 123456 --uccode 12348

file - Группа команд работы с файлами


copy - Скопировать/переместить файлы

Параметры:
--params - Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--src - Файл источник
--dst - Файл/каталог приемник (если оканчивается на "", то каталог)
--move - Выполнить перемещение файлов (удалить источник после копирования)
--lastonly - Копирование файлов, измененных не ранее текущей даты

Простой пример. Копирование файла в каталог

cpdb file copy --src "d:\MSSQL\Backup\MyDatabase_copy.bak" --dst "N:\NewDestination\" --replace --move

Сложный пример. В каталоге-источнике имеется несколько резервных копий с датой в имени файла. Необходимо скопировать только свежий файл (созданный сегодня). Новое имя файла не должно содержать дату

cpdb file copy --src "d:\MSSQL\Backup\MyDatabase_copy*.bak" --dst "N:\NewDestination\MyDatabase_copy.bak*" --replace --move --lastonly

split - Архивировать файл с разбиением на части указанного размера

Используется 7-zip

Параметры:
--params - Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--src - Путь к исходному локальному файлу для разбиения
--arch - Имя файла архива (не обязательный, по умолчанию <имя исходного файла>.7z)
--list - Имя файла, списка томов архива (не обязательный, по умолчанию <имя исходного файла>.split)
--vol-size - Размер части {<g>, <m>, <b>} (по умолчанию 50m)
--compress-level - Уровень сжатия частей архива {0 - 9} (по умолчанию 0 - не сжимать)
--delsrc - Удалить исходный файл после выполнения операции

Пример

cpdb file split "d:\MSSQL\Backup\MyDatabase_copy.bak" --list "d:\MSSQL\Backup\MyDatabase_copy.split" --vol-size 40m --delsrc

merge - Разархивировать файл

Используется 7-zip

Параметры:
--params - Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--arch - Имя первого файла архива
--list - Имя файла, списка файлов архива (параметр -arch игнорируется)
--delsrc - Удалить исходные файлы после выполнения операции

Пример

cpdb file merge --file "d:\MSSQL\Backup\MyDatabase_copy.7z.001" --delsrc
cpdb file merge --list "d:\MSSQL\Backup\MyDatabase_copy.split" --delsrc

mapdrive - Подключить сетевой диск

Параметры:
--params - Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--drive - Имя устройства (буква диска)
--res - Путь к подключаемому ресурсу
--user - Пользователь для подключения
--pwd - Пароль для подключения

Пример

cpdb file mapdrive --drive N --res "\\MyServer\MyFolder" --user superuser --pwd P@$$w0rd

umapdrive - Отключить сетевой диск

Параметры:
--params - Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--drive - Имя устройства (буква диска)

Пример

cpdb file umapdrive --drive N

yadisk - Группа команд работы с сервисом Yandex-Диск

Общие параметры для команд группы:
--token - Token авторизации

put - Помещение файла на Yandex-Диск

Параметры:
--params - Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--file - Путь к локальному файлу для помещения на Yandex-Диск
--list - Путь к локальному файлу со списком файлов, которые будут помещены на Yandex-Диск (параметр --file игнорируется)
--path - Путь к каталогу на Yandex-Диск, куда помещать загружаемые файлы
--replace - Перезаписать файл на Yandex-диске при загрузке
--delsrc - Удалить исходные файлы после отправки

Пример

// Помещает файл "MyDatabase_copy.bak" на Yandex-диск
cpdb yadisk --token XXXXXXXXXXXXXXXXXXXXXXXXXXXXX put --file "d:\MSSQL\Backup\MyDatabase_copy.bak" --path "/transfer" --delsrc
// Помещает файлы, указанные в списке "MyDatabase_copy.split" на Yandex-диск
cpdb yadisk --token XXXXXXXXXXXXXXXXXXXXXXXXXXXXX put --list "d:\MSSQL\Backup\MyDatabase_copy.split" --path "/transfer" --delsrc

get - Получение файла из Yandex-Диска

Параметры:
--params - Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--path - Путь к локальному каталогу для сохранения загруженных файлов
--file - Путь к файлу на Yandex-Диск для загрузки
--list - Путь к файлу на Yandex-Диск со списком файлов, которые будут загружены (параметр --file игнорируется)
--delsrc - Удалить файлы из Yandex-Диск после получения

Пример

// Получает файл "MyDatabase_copy.bak" из Yandex-диска
cpdb yadisk --token XXXXXXXXXXXXXXXXXXXXXXXXXXXXX get --path "d:\MSSQL\Backup\MyDatabase_copy.bak" --file "/transfer/MyDatabase_copy.bak" --delsrc
// Получает файлы, указанные в списке "MyDatabase_copy.split" из Yandex-диска
cpdb yadisk --token XXXXXXXXXXXXXXXXXXXXXXXXXXXXX get --path "d:\MSSQL\Backup\" --list "/transfer/MyDatabase_copy.split" -delsrc

Для получения токена авторизации Яндекс-диска

  • Зарегистрировать приложение: https://oauth.yandex.ru/client/new
  • Дать нужные права для приложения
    • Сервис Яндекс.Диск REST API
      • Запись в любом месте на Диске
        • Чтение всего Диска
        • Доступ к информации о Диске
  • Нажать "Создать приложение" внизу формы: после этого будет показан ID пароль, прочие параметры созданного приложения
  • Получить токен для приложения: перейти по ссылке https://oauth.yandex.ru/authorize?response_type=token&client_id=<ВАШ ID (ID: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX)>
  • На вопрос "Приложение OScript.YaDisk запрашивает доступ к вашим данным на Яндексе" ответить "Разрешить": после этого на экране появится сформированный токен

nextcloud - Группа команд работы с сервисом NextCloud

Общие параметры для команд группы:
--srvr - Адрес сервиса NextCloud
--user - Имя пользователя сервиса NextCloud
--pwd - Пароль пользователя сервиса NextCloud

put - Помещение файла в сервис NextCloud

Параметры:
--params - Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--file - Путь к локальному файлу для помещения в сервис NextCloud
--list - Путь к локальному файлу со списком файлов, которые будут помещены в сервис NextCloud (параметр --file игнорируется)
--path - Путь к каталогу в сервисе NextCloud, куда помещать загружаемые файлы
--replace - Перезаписать файл в сервисе NextCloud при загрузке
--delsrc - Удалить исходные файлы после отправки

Пример

// Помещает файл "MyDatabase_copy.bak" в сервис NextCloud
cpdb nextcloud --service "http://MyNextCloud" --user "admin" --pwd "P@$$w0rd" put --file "d:\MSSQL\Backup\MyDatabase_copy.bak" --path "/transfer" --delsrc
// Помещает файлы, указанные в списке "MyDatabase_copy.split" в сервис NextCloud
cpdb nextcloud --service "http://MyNextCloud" --user "admin" --pwd "P@$$w0rd" put --list "d:\MSSQL\Backup\MyDatabase_copy.split" --path "/transfer" --delsrc

get - Получение файла из сервиса NextCloud

Параметры:
--params - Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--path - Путь к локальному каталогу для сохранения загруженных файлов
--file - Путь к файлу в сервисе NextCloud для загрузки
--list - Путь к файлу в сервисе NextCloud со списком файлов, которые будут загружены (параметр --file игнорируется)
--delsrc - Удалить файлы из сервиса NextCloud после получения

Пример

// Получает файл "MyDatabase_copy.bak" из сервиса NextCloud
cpdb nextcloud --service "http://MyNextCloud" --user "admin" --pwd "P@$$w0rd" get --path "d:\MSSQL\Backup\MyDatabase_copy.bak" --file "/transfer/MyDatabase_copy.bak" --delsrc
// Получает файлы, указанные в списке "MyDatabase_copy.split" из сервиса NextCloud
cpdb nextcloud --service "http://MyNextCloud" --user "admin" --pwd "P@$$w0rd" get --path "d:\MSSQL\Backup\" --list "/transfer/MyDatabase_copy.split" -delsrc

sftp - Группа команд работы с SFTP-сервером

Общие параметры для команд группы:
--srvr - Адрес сервера SFTP в виде <адрес>:<порт>
--port - Порт сервера SFTP
--user - Имя пользователя сервера SFTP
--pwd - Пароль пользователя сервера SFTP, если указан параметр --key-file, то используется как пароль для доступа к закрытому ключу
--key-file - Путь к файлу закрытого ключа, если указано, то параметр --pwd интерпретируется как пароль к закрытому ключу

put - Помещение файла на сервер SFTP

Параметры:
--params - Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--file - Путь к локальному файлу для помещения на сервер SFTP
--list - Путь к локальному файлу со списком файлов, которые будут помещены на сервер SFTP (параметр --file игнорируется)
--path - Путь к каталогу на сервере SFTP, куда помещать загружаемые файлы
--replace - Перезаписать файл на сервере SFTP при загрузке
--delsrc - Удалить исходные файлы после отправки

Пример

// Помещает файл "MyDatabase_copy.bak" на сервере SFTP
cpdb sftp --server "sftp.myServer.org" --port 22 --user "admin" --pwd "P@$$w0rd" put --file "d:\MSSQL\Backup\MyDatabase_copy.bak" --path "/transfer" --delsrc
// Помещает файлы, указанные в списке "MyDatabase_copy.split" на сервере SFTP
cpdb sftp --server "sftp.myServer.org" --port 22 --user "admin" --pwd "P@$$w0rd" put --list "d:\MSSQL\Backup\MyDatabase_copy.split" --path "/transfer" --delsrc

get - Получение файла с сервера SFTP

Параметры:
--params - Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--path - Путь к локальному каталогу для сохранения загруженных файлов
--file - Путь к файлу на сервере SFTP для загрузки
--list - Путь к файлу на сервере SFTP со списком файлов, которые будут загружены (параметр --file игнорируется)
--delsrc - Удалить файлы с сервера SFTP после получения

Пример

// Получает файл "MyDatabase_copy.bak" с сервера SFTP
cpdb sftp --server "sftp.myServer.org" --port 22 --user "user" --pwd "P@$$w0rd" get --path "d:\MSSQL\Backup\MyDatabase_copy.bak" --file "/transfer/MyDatabase_copy.bak" --delsrc
// Получает файлы, указанные в списке "MyDatabase_copy.split" с сервера SFTP
cpdb sftp --server "sftp.myServer.org" --port 22 --user "user" --pwd "P@$$w0rd" get --path "d:\MSSQL\Backup\" --list "/transfer/MyDatabase_copy.split" -delsrc

batch - Выполнить сценарий

Последовательно выполняет команды указнные в файле JSON

Параметры:
<Сценарии> - Файлы JSON содержащие команды и значения параметров, могут быть указаны несколько файлов разделенные "";"" (обработка файлов выполняется в порядке следования)

Пример

cpdb batch "./rest_TST_DB_MyDomain.json"

Пример сценария

{
    "params": {},
    "stages": {
        "Восстановление": {
            "description": "Восстановление из резервной копии",
            "command": "database restore",
            "params": {
                "srvr": "MySQLServer",
                "user": "_1CSrvUsr1",
                "pwd": "p@ssw0rd",
                "bak-path": "d:\\tmp\\PRD_DB_MyDomain.bak",
                "db": "TST_DB_MyDomain",
                "db-owner": "_1CSrvUsr1",
                "db-path": "D:\\sqldata",
                "db-logpath": "D:\\sqldata",
                "db-recovery": "SIMPLE",
                "db-changelfn": true
            }
        },
        "Отключение": {
            "description": "Отключение от хранилища",
            "command": "infobase uconstorage",
            "params": {
                "ib-path": "/SSport1\\TST_DB_MyDomain",
                "ib-user": "\"1C User\"",
                "ib-pwd": "p@ssw0rd"
            }
        },
        "Сжатие": {
            "description": "Сжатие базы данных",
            "command": "database compress",
            "params": {
                "srvr": "Sport1",
                "user": "_1CSrvUsr1",
                "pwd": "p@ssw0rd",
                "db": "TST_DB_MyDomain",
                "shrink-db": true
            }
        }
    }
}

Использование c Jenkins

В jenkinsfile описан конвейер, выполняющий следующий сценарий:

  • Создание резервной копии указанной базы на системе-источнике
  • Разбиение резервной копии на части (используется 7-Zip)
  • Копирование частей файла на Yandex-Диск (в указанный каталог)
  • Получение файла резервной копии из Yandex-Диск на системе-приемнике
  • Восстановление указанной базы из резервной копии
  • Подключает базу к хранилищу конфигурации
Переменные окружения конвейера
src_db_cred - Идентификатор credentials для доступа к MS SQL в системе, где расположена база-источник
src_agent_label - Метка агента Jenkins в системе, где расположена база-источник
src_server_name - Имя сервера MS SQL в системе-источнике
src_db_name - Имя базы-источника
src_bak_path - Путь к каталогу резервной копии в системе-источнике
bak_file_name - Имя файла резервной копии
list_file_name - Имя файла списка томов архива
storage_token - Token для доступа к Yandex-Диску
storage_path - Путь к каталогу на Yandex-Диск для передачи файлов в систему-приемник
dst_db_cred - Идентификатор credentials для доступа к MS SQL в системе-приемнике
dst_agent_label - Метка агента Jenkins в системе, где расположена база-приемник
dst_bak_path - Путь к каталогу резервной копии в системе-приемнике, в который будут загружены файлы из Yandex-Диска
dst_server_name - Имя сервера MS SQL в системе-приемнике
dst_db_name - Имя базы-приемника
dst_dbo - Имя пользователя-владельца базы в системе-приемнике (dbowner)
dst_db_path - Путь к каталогу размещения файлов данных базы-приемника
dst_log_path - Путь к каталогу размещения файлов журнала базы-приемника
dst_ib_agent_label - Метка агента Jenkins в системе, где выполняется подключение к хранилищу конфигурации
dst_ib_con_string - Строка подключения к информационной базе, подключаемой к хранилищу
dst_ib_cred - Идентификатор credentials для доступа к информационной базе
dst_ib_storage_adr - Адрес хранилища конфигурации
dst_ib_storage_cred - Идентификатор credentials для подключения к хранилищу конфигурации

Прграммный интерфейс библиотеки (API)


Класс РаботаССУБД

Подключение = Новый ПодключениеMSSQL("MyServer", "user", "P@ssw0rd);
РаботаССУБД = Новый РаботаССУБД(Подключение);

Функция БазаСуществует() - проверяет существование базу на сервере СУБД

Параметры:
База Строка имя базы данных

Возвращаемое значение: Булево - Истина - база существует

Функция СписокБаз() - получает список баз с сервера СУБД

Параметры:
ФильтрБазПоИмени Строка имя базы данных
ФильтрПоТаблице Строка имя таблицы базы данных
ВключаяСистемные Строка имя таблицы базы данных

Возвращаемое значение: Соответствие Из Структура - список баз на сервере СУБД

* Имя                   - Строка    - имя базы данных
* Ид                    - Число     - идентификатор базы данных
* ИдСоздателя           - Число     - идентификатор пользователя, создавшего базу
* Статус1               - Число     - флаги состояния базы данных
* Статус2               - Число     - флаги состояния базы данных
* ДатаСоздания          - Дата      - дата создания базы данных
* РежимСовместимости    - Число     - версия режима совместимости базы
* ФайлДанных            - Строка    - путь к файлу данных

Функция ТаблицаСуществует() - проверяет существование таблицы в базе на сервере СУБД

Параметры:
База Строка имя базы данных
Таблица Строка имя таблицы базы данных

Возвращаемое значение: Булево - Истина - таблица существует в базе данных

Процедура СоздатьБазуДанных() - создает базу данных

Параметры:
База Строка имя базы данных
МодельВосстановления Строка модель восстановления (FULL, SIMPLE, BULK_LOGGED)
ПутьККаталогу Строка путь к каталогу для размещения файлов базы данных если не указан, то файлы размещаются в каталоге по умолчанию SQL Server

Процедура УдалитьБазуДанных() - удаляет базу данных

Параметры:
База Строка имя базы данных

Процедура ВыполнитьрезервноеКопирование() - выполняет резервное копирование базы

Параметры:
База Строка имя базы данных
ПутьКРезервнойКопии Строка путь к файлу резервной копии

Процедура ВыполнитьВосстановление() - выполняет восстановление базы из резервной копии

Параметры:
База Строка имя базы данных
ПутьКРезервнойКопии Строка путь к файлу резервной копии
ПутьКФайлуДанных Строка путь к файлу данных базы
ПутьКФайлуЖурнала Строка путь к файлу журнала транзакций базы
СоздаватьБазу Булево Истина - создать базу в случае отсутствия

Функция ПолучитьОписание() - получает описание базы данных

Параметры:
База Структура описание базы данных

Возвращаемое значение: Структура - описание базы данных

* Имя                                   - Строка  - имя базы данных (name)
* Ид                                    - Число   - числовой идентификатор базы (database_id)
* ФизическоеИмя                         - Строка  - физическое имя базы (physical_database_name)
* Владелец                              - Строка  - пользователь - владелец базы (db owner)
* ДатаСоздания                          - Дата    - дата создания базы (create_date)
* РежимСовместимости                    - Число   - режим совместимости базы (версия MS SQL)
                                                    (compatibility_level)
* ЯзыковыеУстановки                     - Строка  - используемые языковые установки (collation_name)
* РежимДоступа                          - Булево  - режим пользовательского доступа к базе
                                                    (SINGLE_USER, MULTI_USER) (user_access_desc)
* ТолькоДляЧтения                       - Булево  - флаг режима только для чтения (is_read_only)
* Состояние                             - Строка  - состояние базы (ONLINE, OFFLINE) (state_desc)
* РежимОжидания                         - Булево  - флаг нахождения базы в режиме ожидания (is_in_standby)
* РежимИзоляцииСнимков                  - Булево  - флаг использования режима изоляции снимков
                                                    (snapshot_isolation_state)
* РежимФиксированногоЧтенияСнимков      - Булево  - флаг использования фиксированного чтения снимков
                                                    (is_read_committed_snapshot_on)
* МодельВосстановления                  - Строка  - модель восстановления базы (FULL, SIMPLE, BULK_LOGGED)
                                                    (recovery_model_desc)
* АвтоСозданиеСтатистики                - Булево  - флаг автоматического создания статистики
                                                    (is_auto_create_stats_on)
* АвтоСозданиеСтатистикиИнкрементально  - Булево  - флаг автоматического инкрементального создания статистики
                                                    (is_auto_create_stats_incremental_on)
* АвтоОбновлениеСтатистики              - Булево  - флаг автоматического обновления статистики
                                                    (is_auto_update_stats_on)
* АвтоОбновлениеСтатистикиАсинх         - Булево  - флаг автоматического асинхронного обновления статистики
                                                    (is_auto_update_stats_async_on)
* ПолнотекстовыйПоиск                   - Булево  - флаг использования полнотекстового поиска
                                                    (is_fulltext_enabled)
* Шифрование                            - Булево  - флаг использования шифрования базы (is_encrypted)

Процедура УстановитьОднопользовательскийРежимБазы() - переводит базу данных в однопользовательский режим

Параметры:
База Строка имя базы данных

Процедура УстановитьМногопользовательскийРежимБазы() - переводит базу данных в многопользовательский режим

Параметры:
База Строка имя базы данных

Функция ПолучитьВладельца() - получает текущего владельца базы

Параметры:
База Строка имя базы данных

Возвращаемое значение: Строка - имя текущего владельца базы

Процедура ИзменитьВладельца() - устанавливает нового владельца базы

Параметры:
База Строка имя базы данных
ВладелецБазы Строка новый владелец базы

Процедура ПолучитьМодельВосстановления() - получает модель восстановления базы (FULL, SIMPLE, BULK_LOGGED)

Параметры:
База Строка имя базы данных

Возвращаемое значение: Строка - текущая модель восстановления базы

Процедура ИзменитьМодельВосстановления() - устанавливает модель восстановления базы (FULL, SIMPLE, BULK_LOGGED)

Параметры:
База Строка имя базы данных
МодельВосстановления Строка новая модель восстановления (FULL, SIMPLE, BULK_LOGGED)

Функция ПолучитьЛогическоеИмяФайла() - получает логическое имя файла в базе

Параметры:
База Строка имя базы данных
ТипФайла Строка ROWS - файл базы; LOG - файл журнала транзакций

Возвращаемое значение: Строка - логическое имя файла в базе данных

Процедура ИзменитьЛогическоеИмяФайла() - устанавливает новое логическое имя файла базы

Параметры:
База Строка имя базы данных
Имя Строка логическое имя файла для изменения
НовоеИмя Строка новое логическое имя файла

Процедура УстановитьЛогическиеИменаФайлов() - устанавливает логические имена файлов в формате

<НовоеИмя> - для файла данных

<НовоеИмя>_log - для файла журнала транзакций

Параметры:
База Строка имя базы данных
НовоеИмя Строка новое имя файлов, если не указано, то используется имя базы

Процедура ВключитьКомпрессию() - включает компрессию данных базы на уровне страниц

Параметры:
База Строка имя базы данных

Процедура СжатьБазу() - выполняет сжатие базы (shrink)

Параметры:
База Строка имя базы данных

Процедура СжатьФайлЖурналаТранзакций() - выполняет сжатие файла журнала транзакций (shrink)

Параметры:
База Строка имя базы данных

Функция ВыполнитьСкрипты() - выполняет указанные скрипты

Параметры:
СкриптыВыполнения Строка пути к файлам скриптов, разделенные ";"
СтрокаПеременных Строка набор значений переменных в виде "<Имя>=<Значение>", разделенные ";"

Возвращаемое значение: Строка - результат выполнения скриптов

Функция ВыполнитьЗапрос() - выполняет запрос к СУБД

Параметры:
ТекстЗапроса Строка текст исполняемого запроса
Разделитель Строка символ - разделитель колонок результата
УбратьПробелы Булево Истина - будут убраны выравнивающие пробелы из результата

Возвращаемое значение: Строка - результат выполнения запроса

Модуль РаботаСИБ

Процедура ВыгрузитьИнформационнуюБазуВФайл() - выполняет выгрузку информационной базы в DT-файл

Параметры:
ПараметрыИБ Структура параметры подключения к базе 1С
*СтрокаПодключения Строка строка подключения к базе 1С
*Пользователь Строка имя пользователя базы 1С
*Пароль Строка пароль пользователя базы 1С
ПутьКФайлу Строка путь к DT-файлу для выгрузки базы 1С
ИспользуемаяВерсияПлатформы Строка маска версии 1С
КлючРазрешения Строка ключ разрешения входа в заблоrированную серверную базу 1С (/UC)

Процедура ЗагрузитьИнформационнуюБазуИзФайла() - выполняет загрузку информационной базы из DT-файла

Параметры:
ПараметрыИБ Структура параметры подключения к базе 1С
*СтрокаПодключения Строка строка подключения к базе 1С
*Пользователь Строка имя пользователя базы 1С
*Пароль Строка пароль пользователя базы 1С
ПутьКФайлу Строка путь к DT-файлу для загрузки в базу 1С
КоличествоЗаданий Число количество заданий загрузки файла (для клиент-серверной базы, начиная с версии платформы 8.3.19))
ИспользуемаяВерсияПлатформы Строка маска версии 1С
КлючРазрешения Строка ключ разрешения входа в заблоrированную серверную базу 1С (/UC)

Процедура ОчиститьЛокальныйКэшИнформационнойБазы() - выполняет очистку локального кэша информационной базы 1С

Параметры:
СтрокаПодключения Строка строка подключения к базе 1С

Процедура ОчиститьВсеЛокальныеКэшиИнформационныхБаз() - выполняет очистку всех локальных кэшей информационных баз 1С

Параметры:
нет

Процедура ОтключитьОтХранилища() - выполняет отключение информационной базы от хранилища конфигурации

Параметры:
ПараметрыИБ Структура параметры подключения к базе 1С
*СтрокаПодключения Строка строка подключения к базе 1С
*Пользователь Строка имя пользователя базы 1С
*Пароль Строка пароль пользователя базы 1С
ИспользуемаяВерсияПлатформы Строка маска версии 1С
ИмяРасширения Строка имя расширения, отключаемого от хранилища (если не указано, отключается основная конфигурация)
КлючРазрешения Строка ключ разрешения входа в заблоrированную серверную базу 1С (/UC)

Процедура ПодключитьКХранилищу() - выполняет подключение информационной базы к хранилищу конфигурации

Параметры:
ПараметрыИБ Структура параметры подключения к базе 1С
*СтрокаПодключения Строка строка подключения к базе 1С
*Пользователь Строка имя пользователя базы 1С
*Пароль Строка пароль пользователя базы 1С
ПараметрыХранилища Структура параметры подключения к хранилищу конфигурации
*Адрес Строка адрес хранилища конфигурации
*Пользователь Строка имя пользователя хранилища конфигурации
*Пароль Строка пароль пользователя хранилища конфигурации
ИспользуемаяВерсияПлатформы Строка маска версии 1С
ИмяРасширения Строка имя расширения, отключаемого от хранилища (если не указано, отключается основная конфигурация)
ОбновитьИБ Булево Истина - после обновления обновить конфигурацию базы данных
КлючРазрешения Строка ключ разрешения входа в заблоrированную серверную базу 1С (/UC)

Процедура СоздатьСервернуюБазу() - создание серверной информационной базы 1С

Параметры:
Параметры1С Структура параметры создания базы 1С
*Сервер1С Строка адрес кластера серверов 1С ([<протокол>://]<адрес>[:<порт>])
*ИмяИБ Строка имя информационной базы на сервере 1С
*РазрешитьВыдачуЛицензий Булево Истина - разрешить выдачу лицензий сервером 1С (по умолчанию: Истина)
*РазрешитьРегЗадания Булево Истина - разрешить запуск рег. заданий (по умолчанию: Ложь)
ПараметрыСУБД Структура параметры подключения к СУБД
*ТипСУБД Строка тип сервера СУБД ("MSSQLServer" <по умолчанию>, "PostgreSQL", "IBMDB2", "OracleDatabase")
*СерверСУБД Строка адрес сервера СУБД
*ПользовательСУБД Строка пользователь сервера СУБД
*ПарольСУБД Строка пароль пользователя сервера СУБД
*ИмяБД Строка имя базы на сервере СУБД (если не указано будет использовано имя ИБ 1С)
*СмещениеДат Число смещение дат на сервере MS SQL (0; 2000 <по умолчанию>)
*СоздаватьБД Булево Истина - будет создана база на сервере СУБД в случае отсутствия
АвторизацияВКластере Структура параметры авторизации в кластере 1С
*Имя Строка имя администратора кластера 1С
*Пароль Строка пароль администратора кластера 1С
ИспользуемаяВерсияПлатформы Строка маска версии 1С
ОшибкаЕслиСуществует Булево Истина - вызвать исключение если ИБ в кластере 1С существует (по умолчанию: Ложь)
ПутьКШаблону Строка путь к шаблону для создания информационной базы (*.cf; *.dt). Если шаблон не указан, то будет создана пустая ИБ
ИмяВСпискеБаз Строка имя в списке баз пользователя (если не задано, то ИБ в список не добавляется)

Процедура СоздатьФайловуюБазу() - создание файловой информационной базы 1С

Параметры:
ПутьКБазе Строка путь к каталогу базы 1С
ИспользуемаяВерсияПлатформы Строка маска версии 1С
ПутьКШаблону Строка путь к шаблону для создания информационной базы (*.cf; *.dt). Если шаблон не указан, то будет создана пустая ИБ
ИмяВСпискеБаз Строка имя в списке баз пользователя (если не задано, то ИБ в список не добавляется)

Модуль РаботаСФайлами

Процедура КомандаСистемыКопироватьФайл() - выполняет копирование/перемещение указанных файлов с использованием команд системы (xcopy)

Параметры:
Источник Строка копируемые файлы
Приемник Строка назначение копирования, каталог или файл
Перемещение Булево выполнить перемещение файлов (удалить источник после копирования)
ТолькоСегодня Булево копирование файлов, измененных не ранее текущей даты (параметр /D для xcopy)

Процедура КомандаСистемыУдалитьФайл() - выполняет удаление указанных файлов с использованием команды системы (del)

Параметры:
ПутьКФайлу Строка путь к удаляемому файлу
ИсключениеПриОшибке Булево Истина - вызывать исключение при ошибке удаления

Функция ПрочитатьСписокФайлов() - читает список файлов из файла

Параметры:
ПутьКСписку Строка путь к удаляемому файлу
ДобавитьПутьКИсходномуФайлу Булево Истина - при чтении добавлять к результату путь к исходному файлу списка
ДобавитьИсходныйФайл Булево Истина - добавить исходный файл в список

Возвращаемое значение: Массив из Строка - прочитанный список файлов

Процедура ЗапаковатьВАрхив() - выполняет архиваци указанного файла с разбитием на части указанного размера

Параметры:
ПутьКФайлу Строка путь к файлу, который будет архивироваться
ИмяАрхива Строка имя файла-архива
ИмяСпискаФайлов Строка имя файла-списка (содержащего все чати архива)
РазмерТома Строка размер части {, , } (по умолчанию 50m)
СтепеньСжатия Число уровень сжатия частей архива {0 - 9} (по умолчанию 0 - не сжимать)
УдалитьИсточник Булево Истина - после архивации исходный файл будет удален

Процедура РаспаковатьАрхив() - выполняет выполняет распаковку архива

Параметры:
ПутьКАрхиву Строка путь к файлу архива, который будет распаковываться
ЭтоСписокФайлов Булево Истина - передан список файлов; Ложь - передан первый том архива
УдалитьИсточник Булево Истина - после распаковки исходный файл будет удален

Процедура ПодключитьДиск() - подключает указанный сетевой диск

Параметры:
ИмяУстройства Строка имя (буква) подключаемого диска
ИмяРесурса Строка сетевой путь к подключаемому ресурсу
Пользователь Строка пользователь от имени которого выполняется подключение
ПарольПользователя Строка пароль пользователя от имени которого выполняется подключение

Процедура ОтключитьДиск() - отключает указанный сетевой диск

Параметры:
ИмяУстройства Строка имя (буква) отключаемого диска

Класс РаботаСЯндексДиск

РаботаСЯндексДиск = Новый РаботаСЯндексДиск(<Токен>);
Параметры:
_Токен Строка токен авторизации Yandex-диска

Функция Соединение() - возвращает соединение с Yandex-диском

Параметры:
нет

Возвращаемое значение: ЯндексДиск - соединение с Yandex-диском

Процедура УстановитьПараметрыСоединения() - создает соединение с Yandex-диском с указанными параметрами

Параметры:
_Токен Строка токен авторизации Yandex-диска

Процедура СоздатьКаталог() - создает каталог на Yandex-диске

Параметры:
ЦелевойПуть Строка путь на yandex-диске к создаваемому каталогу

Процедура ОтправитьФайл() - отправляет файл на Yandex-Диск

Параметры:
ПутьКФайлу Строка путь к отправляемому файлу
ЦелевойПуть Строка путь на yandex-диске, куда будет загружен файл
Перезаписывать Булево перезаписать файл на Яндекс-диске при загрузке

Функция ПолучитьФайл() - получает файл из Yandex-Диска

Параметры:
ПутьКФайлу Строка расположение файла на yandex-диске
ЦелевойПуть Строка путь, куда будет загружен файл
УдалитьИсточник Булево Истина - удалить файл после загрузки

Возвращаемое значение: Число - код возврата команды

Функция Существует() - проверка существования файла / каталога на Yandex-Диске

Не реализовано

Параметры:
ПутьКФайлу Строка расположение файла на yandex-диске

Возвращаемое значение: Булево - Истина - файл / каталог существует

Процедура Удалить() - удаляет файл из Yandex-Диска

Параметры:
ПутьКФайлу Строка расположение файла на yandex-диске

Класс РаботаСNextCloud

РаботаСNextCloud = Новый РаботаСNextCloud("http://MyNextCloudServer:8080", "user", "P@ssw0rd");

Функция Адрес() - возвращает адрес сервера NextCloud

Возвращаемое значение: Строка - адрес сервера NextCloud

Функция Пользователь() - возвращает имя пользователя сервера NextCloud

Возвращаемое значение: Строка - имя пользователя сервера NextCloud

Функция Соединение() - возвращает соединение с сервером NextCloud

Возвращаемое значение: ПодключениеNextCloud - соединение с сервером NextCloud

Процедура УстановитьПараметрыСоединения() - создает соединение с сервером NextCloud с указанными параметрами

Параметры:
_Адрес Строка адрес сервера NextCloud
_Пользователь Строка имя пользователя сервера NextCloud
Пароль Строка пароль пользователя сервера NextCloud

Процедура СоздатьКаталог() - создает каталог в сервисе NextCloud

Параметры:
ЦелевойПуть Строка путь к создаваемому каталогу

Процедура ОтправитьФайл() - отправляет файл в сервис NextCloud

Параметры:
ПутьКФайлу Строка путь к отправляемому файлу
ЦелевойПуть Строка путь к каталогу в сервисе NextCloud, куда будет загружен файл
Перезаписывать Булево перезаписать файл в сервисе NextCloud при загрузке

Функция ПолучитьФайл() - получает файл из сервиса NextCloud

Параметры:
ПутьКФайлу Строка расположение файла на сервисе NextCloud
ЦелевойКаталог Строка путь к каталогу, куда будет загружен файл
УдалитьИсточник Булево Истина - удалить файл после загрузки

Возвращаемое значение: Строка - путь к полученному файлу

Функция Существует() - проверяет существование файла / каталога в сервиса NextCloud

Параметры:
ПутьНаДиске Строка расположение файла на сервисе NextCloud

Возвращаемое значение: Булево - Истина - файл / каталог существует

Процедура Удалить() - удаляет файл из сервиса NextCloud

Параметры:
ПутьНаДиске Строка расположение файла на сервисе NextCloud

Класс РаботаСSFTP

РаботаСSFTP = Новый РаботаСSFTP("MySFTPServer:2222", "user", "P@ssw0rd");

Функция Адрес() - возвращает адрес сервера SSH

Возвращаемое значение: Строка - адрес сервера SSH

Функция Пользователь() - возвращает имя пользователя сервера SSH

Возвращаемое значение: Строка - имя пользователя сервера SSH

Функция Соединение() - возвращает соединение с сервером SSH

Возвращаемое значение: КлиентSSH - соединение с сервером SSH

Процедура УстановитьПараметрыСоединения() - создает соединение с сервером SSH с указанными параметрами

Параметры:
_Адрес Строка адрес сервера SSH
_Пользователь Строка имя пользователя сервера SSH
ПутьККлючу Строка путь к файлу закрытого ключа сервера SSH

Процедура СоздатьКаталог() - каталог на сервере SFTP

Параметры:
ЦелевойПуть Строка путь к создаваемому каталогу

Процедура ОтправитьФайл() - отправляет файл в сервис NextCloud

Параметры:
ПутьКФайлу Строка путь к отправляемому файлу
ЦелевойПуть Строка путь к каталогу на сервере SFTP, куда будет загружен файл
Перезаписывать Булево перезаписать файл на сервере SFTP при загрузке

Функция ПолучитьФайл() - получает файл с сервера SFTP

Параметры:
ПутьКФайлу Строка расположение файла на сервере SFTP
ЦелевойКаталог Строка путь к каталогу, куда будет загружен файл
УдалитьИсточник Булево Истина - удалить файл после загрузки

Возвращаемое значение: Строка - путь к полученному файлу

Функция Существует() - проверяет существование файла / каталога на сервере SFTP

Параметры:
ПутьНаДиске Строка расположение файла на сервере SFTP

Возвращаемое значение: Булево - Истина - файл / каталог существует

Процедура УдалитьФайл() - удаляет файл с сервера SFTP

Параметры:
ПутьНаДиске Строка расположение файла на сервере SFTP

Процедура УдалитьКаталог() - удаляет каталог с сервера SFTP

Параметры:
ПутьНаДиске Строка расположение каталога на сервере SFTP

Класс СтруктураХраненияИБ

СтруктураИБ = Новый СтруктураХраненияИБ();

Функция ВерсияФорматаКонфигурации() - возвращает версию формата конфигурации

Параметры:
нет

Возвращаемое значение: Структура - информация о версии формата конфигурации

* Версия                      - Число     - номер версии формата конфигурации
* ТребуемаяВерсияПлатформы    - Строка    - минимальная версия платформы 1С

Функция ОписаниеКонфигурации() - возвращает описание конфигурации

Параметры:
нет

Возвращаемое значение: Структура - описание конфигурации

* Имя                             - Строка    - имя конфигурации
* Синоним                         - Строка    - синоним конфигурации
* Версия                          - Строка    - версия конфигурации
* РежимСовместимости              - Строка    - версия режима совместимости конфигурации
* КраткаяИнформация               - Строка    - краткая информация о конфигурации
* ПодробнаяИнформация             - Строка    - подробная информация о конфигурации
* Поставщик                       - Строка    - поставщик конфигурации
* АвторскиеПрава                  - Строка    - данные об авторских правах
* АдресИнформацииОПоставщике      - Строка    - адрес сайта с информацией о поставщике
* АдресИнформацииОКонфигурации    - Строка    - адрес сайта с информацией о конфигурации
* АдресКаталогаОбновлений         - Строка    - адрес сайта с каталогом обновлений

Функция ОписаниеМетаданныхОбъектаБД1С() - возвращает описание метаданных 1С для объекта СУБД по его имени

Параметры:
ИмяОбъекта Строка имя таблицы или поля таблицы СУБД

Возвращаемое значение: Структура - описание метаданных 1С по имени объекта СУБД

* Владелец               - Структура    - структура описания объекта владельца
* Тип                    - Строка       - тип объекта или коллекция
                                          (например: Справочник, Документ, ТабличнаяЧасть, Поле)
* ТипАнгл                - Строка       - тип объекта или коллекция на английском
                                          (например: Reference, Document, TabularSection, Field)
* Назначение             - Строка       - назначение таблицы БД (например: Основная, Итоги, Обороты)
* Имя                    - Строка       - имя объекта в БД (Префикс + Индекс)
* Префикс                - Строка       - префикс объекта (например: Reference, Document, VT, Fld))
* Индекс                 - Число        - числовой индекс объекта
* Суффикс                - Строка       - дополнительный суффикс имени объекта (например: "_RRef")
* Ид                     - Строка       - UUID объекта 1С
* ИмяМетаданных          - Строка       - имя метаданных 1С
* ПолноеИмяМетаданных    - Строка       - имя метаданных 1С

Функция ОписаниеМетаданныхОбъектовБД1С() - возвращает описание метаданных 1С для таблиц и полей таблиц СУБД

Параметры:
ДобавлятьКолонки Булево Истина - будет добавлена информация для колонок таблиц

Возвращаемое значение: Соответствие - соответствия имен таблиц СУБД и полных имен метаданных 1С описаниям объектов метаданных (см. ОписаниеМетаданныхОбъектаБД1С)

Функция ЗанимаемоеМесто() - возвращает описание занимаеиого места в базе MS SQL Server

Параметры:
нет

Возвращаемое значение: Структура - описание занимаего места

* РазмерБазы         - Число    - размер текущей базы данных в байтах, включает файлы данных и журналов
* Свободно           - Число    - место в базе данных, не зарезервированное для объектов базы данных
* Зарезервировано    - Число    - общий объем, выделенный объектам в базе данных
* Данные             - Число    - зарезервированный объем, используемый данными
* Индексы            - Число    - зарезервированный объем, используемый индексами
* НеИспользуется     - Число    - объем, зарезервированный для объектов в базе данных,
                                  но пока не используемый
* ЖурналВсего        - Число    - полный объем журнала транзакций
* ЖурналИспользуется - Число    - используемый объем журнала транзакций

Функция ПоказателиИспользованияТаблицБазы() - возвращает список таблиц в базе MS SQL Server и их показатели использования

Параметры:
ФильтрТаблицПоИмени Строка фильтр имен таблиц в формате для оператора "LIKE"
СтатистикаОпераций Булево Истина - в результат будет включена статистика по операциям с таблицами (для больших баз - может занять много времени)

Возвращаемое значение: Массив из Структура - таблицы и показатели использования

* Таблица                 - Строка    - имя таблицы
* КоличествоСтрок         - Число     - количество строк в таблице
* ВсегоЗанято             - Число     - общий объем заниаемого места (байт)
* Используется            - Число     - объем, используемый данными (байт)
* НеИспользуется          - Число     - не используемый объем (байт)
* ОперацийЧтения          - Число     - количество операций чтения (read)
* ОперацийВыборки         - Число     - количество операций выборки (select)
* ОперацийСканирования    - Число     - количество операций сканирования (scan)
* ОперацийПоиска          - Число     - количество операций поиска (seek)
* ОперацийЗаписи          - Число     - количество операций записи (write)

Запуск тестов

Необходимые настройки

Для тестирования подключения / отключения сетевого диска требуются дополнительные настройки.

В реестре в ключе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters указать:

BasicAuthLevel : 0x00000002 (2)

В реестре в ключе HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager указать:

ProtectionMode : 0x00000000 (0)

Для тестирования работы с базами MS SQL пользователю, под которым выполняется вход на сервер необходимо назначить роль sysadmin

Выполнение тестов

Запуск и остановка окружения выполняются автоматически.

./tools/runtests.bat

Запуск окружения

Для выполнения отладки

./tools/startenv.bat

Остановка окружения

После выполнения отладки

./tools/stopenv.bat

cpdb's People

Contributors

abirambul avatar arkuznetsov avatar artkor83 avatar asakra avatar borisskin avatar gladilovdmitry avatar glumnihil avatar komarovps avatar kostya6969 avatar vadim-ver avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cpdb's Issues

Ошибка при восстановление бекапа из сетевого диска

Есть цепочка вызовов
РаботаССУБД.ВыполнитьВосстановление() -> ПодключениеКСУБД.ВосстановитьИзРезервнойКопии() -> ПодключениеКСУБД.ПолучитьЛогическоеИмяФайлаВРезервнойКопии()

Если у скуля в функции ПолучитьЛогическоеИмяФайлаВРезервнойКопии() нет прав на файл или его физически нет, то возникнет следующая ошибка в SQL:

Сообщение 3201, уровень 16, состояние 2, строка 1
Cannot open backup device 'Путь к бекапу'. Operating system error 3(The system cannot find the path specified.).
Сообщение 3013, уровень 16, состояние 1, строка 1
RESTORE FILELIST is terminating abnormally.

Это приведет к тому что запрос в РаботаССУБД.ВыполнитьВосстановление() будет некорректен.
Переменные "ЛогическоеИмяФайлаДанных", "ЛогическоеИмяФайлаЖурнала" будут содержать строку как описано выше.
Это приведет к ошибке следующего вида:

КРИТИЧНАЯОШИБКА - {Модуль C:\Program Files\OneScript\lib\cpdb\src\core\Классы\РаботаССУБД.os / Ошибка в строке: 226 / Ошибка восстановления базы "ИмяБазы" из резервной копии "Путь к бекапу":
{Модуль C:\Program Files\OneScript\lib\cpdb\src\core\Классы\РаботаССУБД.os / Ошибка в строке: 216 / Ошибка восстановления базы "ИмяБазы" из резервной копии "Путь к бекапу":
Сообщение 102, уровень 15, состояние 1, сервер DA1CM03\DVLP, строка 7
Incorrect syntax near 'МеткаСетевогоДиска:'.
Сообщение 132, уровень 15, состояние 1, сервер DA1CM03\DVLP, строка 14
The label 'МеткаСетевогоДиска' has already been declared. Label names must be unique within a query batch or stored procedure.
}
}       
             ВызватьИсключение ТекстОшибки;

Дифференциальный бакап

Хочу использовать возможность делать бакапы из командной строки.
Можно ли добавить ключ -differential по нему дописывать разницу в предыдущий файл ?

declare @BackUpFile as Varchar(255)

SELECT TOP 1 @BackUpFile=mf.physical_device_name from msdb..backupset bk
join msdb..backupmediafamily mf on bk.media_set_id = mf.media_set_id
where database_name=N'dbname' and bk.type='D' order by
backup_set_id desc
select @BackUpFile
BACKUP DATABASE [dbname] TO DISK = @BackUpFile WITH DIFFERENTIAL , NOFORMAT, NOINIT, NAME = N'Differential Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10

команда putyadisk

При загрузке ответ от сервиса

Яндекс.Диск ответил кодом ошибки 409: Specified path "/tests/testfolder" points to existent directory.

cpdb putyadisk -file "C:/tests/testfolder/testfile.txt" -ya-token XXX -ya-path "C:/tests/testfolder/"

после чего файл был загружен

Рефакторинг архитектуры приложения/библиотеки

  • Реализовать возможность использования как библиотеки
  • Разделить исполняющие функции и командный интерфейс
  • Выделить интерфейс взаимодействия с СУБД в отдельный класс
  • Заложить возможность работы с другими СУБД через подключаемые классы
  • Заменить библиотеку работы с параметрами

Добавить логи в сценарии

Для удобства диагностики желательно добавить в сценарии возможность записи простых текстовых логов вида:
Шаг: "Копирование базы" начат 11:20
Шаг: "Копирование базы" закончен 11:30
и т.п.
Сейчас приходится cpdb в другие скрипты заворачивать.

Ошибка подключения библиотек

Пытаюсь использовать cpdb в своем скрипте, получаю ошибку

{Модуль D:\Programs\OneScript\lib\cpdb\src\Модули\ЗапускПриложений.os / Ошибка в строке: 85 / Неизвестный символ: ЧтениеПараметров}
Процесс терминала завершен с кодом выхода: 1

Это модуль из readparams. В cpdb.os он подключается, но почему-то не находится в зоне видимости ЗапускПриложений.os.
Если в ЗапускПриложений.os добавить
#Использовать readparams
то скрипт отрабатывает нормально.

Ситуация воспроизводится на 2-х машинах. Устанавливал oscript через инсталлер и из архива - разницы нет.
Некоторые листинги консоли

d:\Programs\OneScript\lib\cpdb\src>opm list
Пакеты в системном каталоге библиотек <D:\Programs\OneScript\lib>:
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]

d:\Programs\OneScript\lib\cpdb\src>oscript cpdb.os
ОШИБКА - Некорректные аргументы командной строки
Возможные команды:
help - Вывод справки по параметрам
...вырезано.....
merge - Восстановить файл из частей (требуется установленный 7-zip)
Для подсказки по конкретной команде наберите help <команда>

d:\Programs\OneScript\lib\cpdb\src>oscript
1Script Execution Engine. Version 1.0.18.101

Сам скрипт
test.txt

ЗЫ: я не до конца уверен, что это ошибка в библиотеке, возможно проблема в самом oscript.

Не описано требование иметь программу sqlcmd на машине

Нужно добавить в Readme.md

sqlcmd -S obr-sedo-mdb -U 1сv8 -P хххххх -Q "SET NOCOUNT ON; SELECT COUNT(name) from sysdatabases where name = 'mc_uat_dev'; SET NOCOUNT OFF" -b, ., Да,
ОШИБКА - Ошибка восстановления базы "mc_uat_dev" из резервной копии "L:": {Модуль C:\Program Files (x86)\OneScript\lib\1commands\src\Команда.os / Ошибка в строке: 306
 / Внешнее исключение (System.ComponentModel.Win32Exception): Не удается найти указанный файл}

После подключения к хранилищу расширения не происходит обновление данных расширения

РаботаСИБ.ПодключитьКХранилищу
Для Обновление ИБ нужно передавать имя расширения в метод "ОбновитьКонфигурациюБазыДанных" 4 параметром

Сейчас
Конфигуратор.ОбновитьКонфигурациюБазыДанных();
Нужно
Конфигуратор.ОбновитьКонфигурациюБазыДанных(, , , ИмяРасширения);

Ошибки выгрузки / загрузки yandex disk

Есть ошибки в работе класса РаботаСЯндексДиск.os и соотв. команд. Исправил ошибки и написал приемочный тест, направил пулл реквест.

Ошибка при подключении/отключении сетевого диска

При работе с сетевыми дисками в
РаботаСФайлами.ПодключитьДиск()
РаботаСФайлами.ОтключитьДиск()

возникают следующая ошибка

ИНФОРМАЦИЯ - Выполняется сценарий (0) из файла "./test.json"
ИНФОРМАЦИЯ - Выполняется шаг "Подключить сетевой диск" сценария (0) из файла "./test.json"
ИНФОРМАЦИЯ - Начало подключения сетевого ресурса "\\путь" к устройству "R"
ОТЛАДКА - [oscript.lib.commands] - РабочийКаталог: .
ОТЛАДКА - [oscript.lib.commands] - Строка запуска <net use R \\путь пароль /USER:пользователь>
ОТЛАДКА - [oscript.lib.commands] - Полная строка запуска <net use R \\путь пароль  /USER:пользователь>
ОТЛАДКА - [oscript.lib.commands] - Строка запуска <net use R \\путь пароль  /USER:пользователь>
ОТЛАДКА - [oscript.lib.commands] - Полная строка запуска <net use R \\путь пароль  /USER:пользователь>
ОТЛАДКА - [oscript.lib.commands] - Длина вывода 497, количество строк 19
ОТЛАДКА - [oscript.lib.commands] - Код возврата равен 1
КРИТИЧНАЯОШИБКА - {Модуль C:\Program Files\OneScript\lib\cpdb\src\core\Модули\РаботаСФайлами.os / Ошибка в строке: 383 / Ошибка ошибка подключения ресурса "\\путь" к устройству "R", код ошибки 1:
Синтаксис данной команды:

NET USE
[devicename | *] [\\computername\sharename[\volume] [password | *]]
        [/USER:[domainname\]username]
        [/USER:[dotted domain name\]username]
        [/USER:[username@dotted domain name]
        [/SMARTCARD]
        [/SAVECRED]
        [/REQUIREINTEGRITY]
        [/REQUIREPRIVACY]
        [/WRITETHROUGH]
        [[/DELETE] | [/PERSISTENT:{YES | NO}]]

NET USE {devicename | *} [password | *] /HOME

NET USE [/PERSISTENT:{YES | NO}]

}

я подразумеваю что нарушен синтаксис т.е.
сейчас: net use R \путь пароль /USER:пользователь
нужно: net use R: \путь /USER:пользователь пароль

или кодом

Процедура ПодключитьДиск(ИмяУстройства, ИмяРесурса, Пользователь, ПарольПользователя) Экспорт

	Лог.Информация("Начало подключения сетевого ресурса ""%1"" к устройству ""%2""",
	               ИмяРесурса,
	               ИмяУстройства);

	КомандаРК = Новый Команда;
	
	КомандаРК.УстановитьКоманду("net");
	КомандаРК.ДобавитьПараметр("use");
	КомандаРК.ДобавитьПараметр(ИмяУстройства + ":");
	КомандаРК.ДобавитьПараметр(ИмяРесурса);

	Если ЗначениеЗаполнено(Пользователь) Тогда
		КомандаРК.ДобавитьПараметр("/USER:" + Пользователь);		
		КомандаРК.ДобавитьПараметр(ПарольПользователя);
	КонецЕсли;

	КомандаРК.УстановитьИсполнениеЧерезКомандыСистемы( Ложь );
	КомандаРК.ПоказыватьВыводНемедленно( Ложь );
	
	КодВозврата = КомандаРК.Исполнить();

	ОписаниеРезультата = КомандаРК.ПолучитьВывод();
	
	Если КодВозврата = 0 Тогда
		Лог.Информация("Подключен сетевой ресурс ""%1"" к устройству ""%2"": %3",
		               ИмяРесурса,
		               ИмяУстройства,
		               ОписаниеРезультата);
	Иначе
		ВызватьИсключение СтрШаблон("Ошибка ошибка подключения ресурса ""%1"" к устройству ""%2"", код ошибки %3: %4%5",
		                            ИмяРесурса,
		                            ИмяУстройства,
		                            КодВозврата,
		                            Символы.ПС,
		                            ОписаниеРезультата);
	КонецЕсли;
	
КонецПроцедуры // ПодключитьДиск()

Ошибка при восстановлении из резервной копии "Logical file '' is not part of database ...."

Не хватает поля в описании временной таблицы структуры байла бэкапа:
ИнструкментыСУБД.os
должно быть:

Функция ПолучитьСписокПолейТаблицыФайловРезервнойКопии()

ОписаниеПолей = "[LogicalName] nvarchar(128),
				|[PhysicalName] nvarchar(260),
				|[Type] char(1),
				|[FileGroupName] nvarchar(128),
				|[Size] numeric(20,0),
				|[MaxSize] numeric(20,0),
				|[FileID] bigint,
				|[CreateLSN] numeric(25,0),
				|[DropLSN] numeric(25,0) NULL,
				|[UniqueID] uniqueidentifier,
				|[ReadOnlyLSN] numeric(25,0) NULL,
				|[ReadWriteLSN] numeric(25,0) NULL,
				|[BackupSizeInBytes] bigint,
				|[SourceBlockSize] int,
				|[FileGroupID] int,
				|[LogGroupGUID] uniqueidentifier NULL,
				|[DifferentialBaseLSN] numeric(25,0) NULL,
				|[DifferentialBaseGUID] uniqueidentifier,
				|[IsReadOnly] bit,
				|[IsPresent] bit,
				|[TDEThumbprint] varbinary(32),
				|[SnapshotUrl] nvarchar(360)";

Возврат ОписаниеПолей;

КонецФункции //ПолучитьСписокПолейТаблицыФайловРезервнойКопии()

Иначе ошибка при

После установки через opm не хватает библиотеки v8storage

После установки через opm не хватает библиотеки v8storage

C:\Temp>opm install cpdb
ИНФОРМАЦИЯ - Скачиваю файл: cpdb.ospx
ИНФОРМАЦИЯ - Устанавливаю пакет cpdb
ИНФОРМАЦИЯ - Регистрация приложения: cpdb
ИНФОРМАЦИЯ - Установка завершена
ИНФОРМАЦИЯ - Устанавливаю зависимость: logos
ИНФОРМАЦИЯ - logos уже установлен. Пропускаем.
ИНФОРМАЦИЯ - Устанавливаю зависимость: 1commands
ИНФОРМАЦИЯ - 1commands уже установлен. Пропускаем.
ИНФОРМАЦИЯ - Устанавливаю зависимость: cmdline
ИНФОРМАЦИЯ - cmdline уже установлен. Пропускаем.
ИНФОРМАЦИЯ - Устанавливаю зависимость: readparams
ИНФОРМАЦИЯ - Скачиваю файл: ReadParams.ospx
ИНФОРМАЦИЯ - Устанавливаю пакет ReadParams
ИНФОРМАЦИЯ - Установка завершена
ИНФОРМАЦИЯ - Устанавливаю зависимость: json
ИНФОРМАЦИЯ - json уже установлен. Пропускаем.
ИНФОРМАЦИЯ - Устанавливаю зависимость: v8runner
ИНФОРМАЦИЯ - v8runner уже установлен. Пропускаем.
ИНФОРМАЦИЯ - Устанавливаю зависимость: yadisk
ИНФОРМАЦИЯ - Скачиваю файл: yadisk.ospx
ИНФОРМАЦИЯ - Устанавливаю пакет yadisk
ИНФОРМАЦИЯ - Установка завершена
ИНФОРМАЦИЯ - Устанавливаю зависимость: 1testrunner
ИНФОРМАЦИЯ - 1testrunner уже установлен. Пропускаем.
ИНФОРМАЦИЯ - Устанавливаю зависимость: 1bdd
ИНФОРМАЦИЯ - <1bdd> отмечена как зависимость для разработчика, но установка зависимостей для разработчика не активирована. Пропускаем.
ИНФОРМАЦИЯ - Устанавливаю зависимость: asserts
ИНФОРМАЦИЯ - asserts уже установлен. Пропускаем.
ИНФОРМАЦИЯ - Устанавливаю зависимость: moskito
ИНФОРМАЦИЯ - отмечена как зависимость для разработчика, но установка зависимостей для разработчика не активирована. Пропускаем.

C:\Temp>cpdb
{Модуль C:\Program Files\OneScript\lib\cpdb\src\cpdb.os / Ошибка в строке: 5,0 / Библиотека не найдена: 'v8storage'}

C:\Temp>opm -v
1.0.2

C:\Temp>oscript.exe -version
1.6.0.213

Команда Copy

При вызове команды copy выходит ошибка

КРИТИЧНАЯОШИБКА` - {Модуль C:\Program Files (x86)\OneScript\lib\cmdline\src\cmdline.os / Ошибка в строке: 436 / Неизвестный параметр в позиции 3 параметр d:\MSSQL\Backup\MyDatabase_copy.bak copy -src d:\MSSQL\Backup\MyDatabase_copy.bak -dst N:\NewDestination" -replace -delsrc }

[email protected]

Расширить команду compress - получать список несжатых таблиц и индексов

Если мы не внедряем в базу SQL дополнительные триггеры, то после изменения метаданных, влекущих за собой изменение структуры таблиц, в базе оказываются несжатые таблицы и индексы из-за реструктуризации.
Например - добавили реквизит в табличную часть Товары Заказа клиента - база резко распухла.
Хочется видеть, какие таблицы не сжаты.
Соответственно при сжатии делать ребилд только несжатых таблиц и индексов.

Ошибка создания базы SQL с именем содержащим -

Если выполнить команду cpdb restore и указать имя базы с - (TEST-BASE-123-fix), тогда получим ошибку.

ОТЛАДКА - [oscript.lib.commands] - Строка запуска <sqlcmd -S shqdc-1c-dev01.ilp.loc -U svchq_1CDbAccess -P UBZRhMsn5F -Q "USE [master]; CREATE DATABASE TEST-BASE-123-fix; ALTER DATABASE TEST-BASE-123-fix SET RECOVERY SIMPLE" -b>
ОТЛАДКА - [oscript.lib.commands] - Полная строка запуска <sqlcmd -S shqdc-1c-dev01.ilp.loc -U svchq_1CDbAccess -P UBZRhMsn5F -Q "USE [master]; CREATE DATABASE TEST-BASE-123-fix; ALTER DATABASE TEST-BASE-123-fix SET RECOVERY SIMPLE" -b>
ОТЛАДКА - [oscript.lib.commands] - Строка запуска <sqlcmd -S shqdc-1c-dev01.ilp.loc -U svchq_1CDbAccess -P UBZRhMsn5F -Q "USE [master]; CREATE DATABASE TEST-BASE-123-fix; ALTER DATABASE TEST-BASE-123-fix SET RECOVERY SIMPLE" -b>
ОТЛАДКА - [oscript.lib.commands] - Полная строка запуска <sqlcmd -S shqdc-1c-dev01.ilp.loc -U svchq_1CDbAccess -P UBZRhMsn5F -Q "USE [master]; CREATE DATABASE TEST-BASE-123-fix; ALTER DATABASE TEST-BASE-123-fix SET RECOVERY SIMPLE" -b>
ОТЛАДКА - [oscript.lib.commands] - Длина вывода 276, количество строк 7
ОТЛАДКА - [oscript.lib.commands] - Код возврата равен 1
ОШИБКА - Ошибка восстановления базы "TEST-BASE-123-fix" из резервной копии "E:\temp\TEST-BASE-123-fix.bak": Msg 102, Level 15, State 1, Server SHQDC-1C-DEV01, Line 1
Incorrect syntax near '-'.
Msg 102, Level 15, State 1, Server SHQDC-1C-DEV01, Line 1
Incorrect syntax near '-'.
Msg 195, Level 15, State 7, Server SHQDC-1C-DEV01, Line 1
'RECOVERY' is not a recognized SET option.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.