Что значит развернуть базу данных

Развернуть базу данных PostgreSQL (Windows)

Для установки Creatio вы можете использовать следующие конфигурации баз данных:

удаленная СУБД (рекомендуется);

локальный сервер PostgreSQL.

Если у вас уже настроен сервер PostgreSQL, то шаг I можно пропустить.

Если у вас уже есть пользователь с правами администратора для авторизации, создания и изменения баз данных, то шаг II можно пропустить.

I. Установить PostgreSQL

II. Создать пользователя PostgreSQL

Установленный PostgreSQL Server требует дополнительной настройки, прежде чем вы перейдете к развертыванию Creatio. После первичной установки PostgreSQL Server вам необходимо создать для него пользователя, который сможет подключаться к базе данных через логин и пароль и будет иметь права на создание и обновление баз данных. По умолчанию такого пользователя в PostgreSQL Server нет.

Рекомендуется создать следующих пользователей PostgreSQL:

Пользователь с ролью ”sysadmin” и неограниченными полномочиями на уровне сервера базы данных — нужен для восстановления базы данных и настройки доступа к ней. Далее для обозначения пользователя с ролью ”sysadmin” будет использован псевдоним pg_sysadmin.

Пользователь с ролью ”public” и ограниченными полномочиями — используется для настройки безопасного подключения Creatio к базе данных через аутентификацию средствами PostgreSQL. Далее для обозначения пользователя с ролью ”public” будет использован псевдоним pg_user.

Чтобы создать пользователей PostgreSQL:

Откройте командную строку.

Перейдите в папку с установочными файлами PostgreSQL:

\\path\to\PostgreSQL\folder — путь к папке с установочными файлами PostgreSQL.

Перейдите в папку с компонентом Command Line Tools:

Введите пароль подключения к серверу БД в переменную окружения:

pg_password — пароль пользователя postgres для подключения к серверу PostgreSQL.

Запустите оболочку PostgreSQL от имени пользователя postgres:

Создайте нового пользователя с правами администратора:

pg_sysadmin — пользователь, которому будут предоставлены права администратора. Нужен для восстановления базы данных и настройки доступа к ней.

Настройте для пользователя pg_sysadmin права администратора:

Разрешите pg_sysadmin авторизацию:

Настройте пароль для pg_sysadmin:

pg_password — пароль пользователя pg_sysadmin для подключения к серверу PostgreSQL.

Создайте нового пользователя с ограниченными правами:

pg_user — пользователь для подключения к серверу PostgreSQL. Используется для подключения Creatio к базе данных.

Разрешите pg_user авторизацию:

Настройте пароль для pg_user:

pg_password — пароль пользователя pg_user для подключения к серверу PostgreSQL.

Выйдите из оболочки PostgreSQL.

III. Восстановить из бэкапа базу данных PostgreSQL

Для восстановления базы данных из резервной копии необходимы утилиты psql.exe и pg_restore.exe. Обе утилиты входят в компонент Command Line Tools PostgreSQL, который устанавливается вместе с PostgreSQL Server. Они находятся в каталоге установленного программного обеспечения PostgreSQL.

Если вы планируете использовать удаленную базу данных PostgreSQL и не устанавливать PostgreSQL Server, то выполните следующие шаги:

При установке пакета выберите также установку компонента Command Line Tools. Установка остальных компонентов опциональна.

Чтобы развернуть базу данных из бэкапа:

Откройте командную строку.

Перейдите в папку с установочными файлами PostgreSQL:

\\path\to\PostgreSQL\folder — путь к папке с установочными файлами PostgreSQL.

Перейдите в папку с исполнимыми модулями:

Установите пароль подключения к серверу БД в переменную окружения:

pg_syspassword — пароль пользователя pg_sysadmin для подключения к серверу PostgreSQL.

Создайте базу данных, в которую будет выполнено восстановление резервной копии:

pg_server_address — адрес сервера PostgreSQL;

pg_server_port — порт сервера PostgreSQL;

pg_sysadmin — пользователь, которому предоставлены права администратора.

pg_dbname — имя БД, в контексте которой происходит выполнение инструкций.

Если вы еще не создали базу данных или попытка подключения завершается ошибкой “FATAL: database «pg_dbname» does not exist”, то воспользуйтесь БД “template1”, которая создается в PostgreSQL по умолчанию.

pg_dbname_creatio — имя БД PostgreSQL, в которой будут храниться таблицы Creatio.

pg_user — пользователь с ограниченными правами, который используется для подключения к базе данных Creatio.

Если вы используете AWS RDS:

Замените в скрипте значение “postgres” на актуальное имя пользователя Postgres.

Выполните обновленный скрипт ChangeTypesOwner.sql.

Восстановите базу данных из бэкапа:

pg_server_address — адрес сервера PostgreSQL;

pg_server_port — порт сервера PostgreSQL;

pg_sysadmin — пользователь, которому предоставлены права администратора.

pg_dbname_creatio — имя БД PostgreSQL, в которую будут добавлены таблицы резервной копии. Используйте имя базы данных, указанное в команде «CREATE DATABASE» на шаге 2.

Выполните преобразование типов:

pg_server_ip — адрес сервера PostgreSQL;

pg_server_port — порт сервера PostgreSQL;

pg_sysadmin — пользователь, которому предоставлены права администратора.

pg_dbname_creatio — имя БД, в контексте которой происходит выполнение инструкций.

\\путь\к\CreateTypeCastsPostgreSql.sql — путь к сохраненному ранее файлу CreateTypeCastsPostgreSql.sql.

В Creatio версии 7.16.3 и выше существует возможность при восстановлении из резервной копии заменить владельца БД и ее объектов на пользователя, не являющегося системным администратором (не Superuser). Вам потребуется скрипт ChangeDbObjectsOwner. Для Postgres версии 10 и ниже: Скачать скрипт. Для Postgres 11 и выше: Скачать скрипт.
Чтобы восстановить БД от имени пользователя, не являющегося администратором:

Замените владельца БД:

pg_server_ip — адрес сервера PostgreSQL.
pg_server_port — порт сервера PostgreSQL.
pg_sysadmin — пользователь для подключения к серверу PostgreSQL. Пользователь должен являться администратором (Superuser) или иметь права на создание базы данных (команда «CREATE DATABASE»).
pg_user — новый владелец БД.
pg_dbname_creatio — имя БД, владелец которой заменяется.

Замените владельца объектов БД:

pg_server_ip — адрес сервера PostgreSQL.
pg_server_port — порт сервера PostgreSQL.
pg_sysadmin — пользователь для подключения к серверу PostgreSQL. Пользователь должен являться администратором (Superuser) или иметь права на создание базы данных (команда «CREATE DATABASE»).
pg_user — новый владелец БД.
pg_dbname_creatio — имя БД, владелец которой заменяется;
\\путь\к\ChangeDbObjectsOwner.sql — путь к сохраненному ранее файлу ChangeDbObjectsOwner.sql.

Вы можете пропустить этот шаг, и в таком случае владельцем БД и ее объектов останется пользователь, от имени которого запускалась команда pg_restore. Обычно это пользователь postgres.

Источник

Руководство. выполнить сборку и развертывание в локальной базе данных

Microsoft SQL Server 2012 предоставляет локальный экземпляр сервера, доступного по запросу, который называется средой выполнения локальной базы данных SQL Server Express и активируется при отладке проекта базы данных SQL Server. Этот локальный экземпляр сервера может использоваться как песочница для сборки, тестирования и отладки проекта. Он никак не связан с любым из установленных экземпляров SQL Server и доступен только из SQL Server Data Tools (SSDT). Такой механизм является идеальным для разработчиков, которые имеют ограниченный доступ к производственным базам данных или вообще не имеют доступа, однако им необходимо тестировать проекты в локальном режиме перед тем, как авторизованный персонал выполнит их развертывание в производственной среде. Кроме того, при разработке решения базы данных для SQL Azure можно пользоваться удобными функциями разработки и тестирования проекта базы данных в локальном режиме, доступными на этом локальном сервере, перед развертыванием в облаке.

База данных в узле локальных баз данных в обозревателе объектов SQL Server является отражением соответствующего проекта базы данных и не связана с одноименной базой данных в подключенном экземпляре сервера.

В следующих процедурах используются сущности, созданные с помощью процедур, которые описывались ранее в разделах Connected Database Development (Разработка подключенной базы данных) и Project-Oriented Offline Database Development (Разработка базы данных вне сети с учетом проекта).

Использование локальной базы данных

Обратите внимание, что в обозревателе объектов SQL Server в узле SQL Server появляется новый узел с именем Локальные. Это локальный экземпляр базы данных.

Разверните узлы Локально и Базы данных. Обратите внимание на внешний вид базы данных с тем же именем, что у проекта TradeDev. Разверните узлы в этой базе данных. В окне Операции инструментальных средств для обработки данных отображается состояние операций расширения или импорта, выполняющихся в любой базе данных узла Локальные. Обратите внимание, что они не содержат таблицы или сущности, созданные в предыдущих процедурах.

Нажмите клавишу F5 для отладки проекта базы данных TradeDev.

По умолчанию SSDT будет использовать для отладки проектов баз данных локальный экземпляр сервера баз данных. В этом случае SSDT сначала попытается построить проект, затем, если нет ошибок, произойдет развертывание проекта (и его сущностей) в локальной базе данных. Если позднее при отладке этого же проекта SSDT обнаружит изменения, внесенные с последнего сеанса отладки, то будет выполнено развертывание в локальной базе данных только этих изменений.

Еще раз разверните узлы в проекте TradeDev на сервере баз данных Локально. На этот раз обратите внимание, что таблицы, представления и функции были развернуты на локальном сервере баз данных.

Щелкните правой кнопкой мыши узел TradeDev и выберите Создать запрос.

Вставьте этот код в области сценариев и нажмите кнопку Выполнить запрос, чтобы запустить запрос.

В области Сообщение отображается сообщение «(Обработано строк: 0)», а в области Результаты не будет ни одной строки. Это связано с тем, что запрос выполнялся к локальной базе данных, а не подключенной, которая содержит реальные данные.

Чтобы убедиться в этом, щелкните правой кнопкой мыши таблицу Products в локальной базе данных TradeDev и выберите Просмотр данных. Обратите внимание, что таблица пустая.

Копирование реальных данных в локальную базу данных

В обозревателе объектов SQL Server разверните подключенный экземпляр SQL Server и найдите базу данных TradeDev.

Щелкните правой кнопкой мыши таблицу Suppliers и выберите Просмотр данных.

Нажмите кнопку Скрипт (вторая справа) в верхней части редактора данных. Скопируйте инструкции INSERT из скрипта.

Разверните экземпляр сервера Local и щелкните правой кнопкой мыши узел TradeDev, затем выберите Создать запрос.

Вставьте инструкции INSERT в окно запроса и запустите запрос.

Повторите приведенные выше шаги для копирования данных из таблиц Products и Fruits в подключенной базе данных TradeDev в локальную базу данных TradeDev.

Щелкните правой кнопкой мыши экземпляр сервера Local и выберите Обновить. Просмотрите таблицы с помощью функции Просмотр данных, чтобы убедиться, что локальная база данных заполнена.

Щелкните правой кнопкой мыши узел TradeDev локального экземпляра сервера и выберите Создать запрос.

Вставьте этот код в области сценариев и нажмите кнопку Выполнить запрос, чтобы запустить запрос.

Источник

Развертывание базы данных (C#)

Развертывание веб-приложения ASP.NET влечет за собой получение необходимых файлов и ресурсов из среды разработки в рабочую среду. Для веб-приложений, управляемых данными, включает схему и данные базы данных. Этот учебник является первым в серии, в которой рассматриваются шаги, необходимые для успешного развертывания базы данных из среды разработки в рабочей среде.

Введение

Развертывание веб-приложения ASP.NET влечет за собой получение необходимых файлов и ресурсов из среды разработки в рабочую среду. В течение прошлых шести учебных курсов мы рассматривали развертывание простого веб-приложения для рецензирования книги. Этот демонстрационный веб-узел состоит из ряда ресурсов на стороне сервера — ASP.NET страниц, файлов конфигурации, Web.sitemap файла и т. д. Вместе с ресурсами на стороне клиента, например с изображениями и CSS-файлами. Но как насчет веб-приложений, управляемых данными? Какие дополнительные действия необходимо предпринять для развертывания веб-приложения, использующего базу данных?

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

Изучение обновленного веб-приложения «Рецензирование книги»

Чтобы продемонстрировать развертывание управляемого данными веб-приложения, я обновил веб-приложение «Рецензирование книги» с простого статического веб-сайта на основе данных. Как и ранее, в этом руководстве есть две версии приложения: одна использует модель проекта веб-приложения, а другая использует модель проекта веб-сайта.

/App_Data/Reviews.mdf ). Если на компьютере установлено SQL Server 2008, демонстрационная версия должна работать без ошибок. Если у вас более старая версия SQL Server можно либо установить бесплатную SQL Server 2008 Express Edition, либо воспользоваться скриптами базы данных, доступными в этом руководстве по скачиванию, чтобы создать базу данных.

Reviews.mdf База данных содержит четыре таблицы:

На рис. 1 показана схема ER этих четырех таблиц.

Что значит развернуть базу данных

Рис. 1. база данных веб-приложений с проверкой книг состоит из четырех таблиц (щелкните, чтобы просмотреть изображение с полным размером)

В предыдущей версии веб-сайта рецензирования книги была отдельная страница ASP.NET для каждой книги. Например, есть страница с именем

На рисунках 2 и 3 Genre.aspx показаны Review.aspx страницы и в действии. Запишите URL-адрес в адресной строке для каждой страницы. На рис. 2 он является жанром. aspx? Так как 85d164ba-1123-4c47-82A0-c8ec75de7e0e — это GenreId значение для жанра технологии, заголовок страницы считывает «обзоры технологий», а маркированный список перечисляет эти рецензии на сайте, которые попадают под этот жанр.

Что значит развернуть базу данных

Что значит развернуть базу данных

В веб-приложение Books views также входит раздел Администрирование, в котором администраторы могут добавлять, изменять и удалять жанры, обзоры и сведения об авторе. Сейчас любой посетитель может получить доступ к разделу Администрирование. В следующем учебном курсе мы добавим поддержку учетных записей пользователей и разрешив только разрешенных пользователей на страницах администрирования.

Если вы загрузили приложение для рецензирования книги, помните, что его целью является демонстрация развертывания приложения, управляемого данными. В нем не приведутся рекомендации по проектированию приложений. Например, не существует отдельного уровня доступа к данным (DAL); страницы ASP.NET напрямую взаимодействуют с базой данных с помощью элемента управления SqlDataSource или кода ADO.NET в своих классах кода программной части. Более подробные сведения о создании приложений, управляемых данными, с использованием многоуровневой архитектуры см. в статье Работа с учебниками по работе с данными.

Базы данных в разработке и рабочей среде

При запуске разработки на управляемом данными веб-приложении необходимо указать строку подключения к базе данных, которая предоставляет сведения о приложении по подключению к базе данных. Эта строка подключения указывает, помимо прочего, сервер базы данных, имя базы данных и сведения о безопасности. Чаще всего база данных, используемая приложением во время разработки, отличается от базы данных, используемой в рабочей среде. Существует множество преимуществ использования разных баз данных для разработки и рабочей среды. Наличие другой базы данных в разработке означает, что вам не нужно беспокоиться о случайном изменении или удалении динамических данных. Он также позволяет добавлять фиктивные тестовые данные или вносить критические изменения в модель данных, не заботясь о влиянии на приложение в рабочей среде. Недостаток базы данных в средах разработки и рабочей среде заключается в том, что при развертывании базы данных и внесении соответствующих изменений в схему или данные базы данных также должны быть развернуты.

До первого развертывания существует только один экземпляр базы данных, и этот экземпляр находится в среде разработки. При первом развертывании приложения в рабочей среде необходимо не только копировать необходимые серверные и клиентские файлы на стороне сервера, но и копировать базу данных из среды разработки в рабочую среду. Здесь мы сейчас работаем с веб-приложением для рецензирования книги — база данных находится в App_Data папке в нашей среде разработки, но еще не была передана в рабочую среду.

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

Развертывание базы данных в рабочей среде

В оставшейся части этого руководства рассматривается развертывание базы данных из среды разработки в рабочую среду. При необходимости убедитесь, что учетная запись с поставщиком веб-узла включает Microsoft SQL Server поддержку базы данных. Кроме того, необходимо иметь некоторую информацию, а именно имя сервера базы данных, имя базы данных и имя пользователя и пароль, используемые для подключения к базе данных.

Как отмечалось ранее в этом учебнике, база данных веб-сайта проверки книги является базой данных SQL Server 2008 Express Edition, хранящейся в App_Data папке. Это может привести к попричине того, что развертывание такой базы данных будет таким же простым, как копирование App_Data папки из среды разработки в рабочую среду. Однако большинство поставщиков веб-узлов не поддерживают размещение баз данных в App_Data папке по соображениям безопасности. Вместо этого веб-узлы предоставляют учетную запись на SQL Server сервере базы данных в своей среде. Для развертывания базы данных из среды разработки в рабочей среде требуется, чтобы база данных была зарегистрирована на сервере базы данных веб-узлов.

Создание команд SQL для создания схемы и данных базы данных с помощью мастера публикации баз данных

Давайте рассмотрим использование мастера публикации баз данных для развертывания базы данных рецензий книги в рабочей среде. Если вы используете Visual Studio 2008 или более поздней, мастер публикации баз данных уже установлен. Если вы используете Visual Studio 2005, необходимо сначала скачать и установить мастер.

Откройте Visual Studio и перейдите к Reviews.mdf базе данных. Если вы используете Visual Web Developer, перейдите на обозреватель базы данных; Если вы используете Visual Studio, используйте обозреватель сервера. На рис. 4 показана Reviews.mdf база данных в Обозреватель базы данных в Visual Web Developer. Как показано на рис. 4, Reviews.mdf база данных состоит из четырех таблиц, трех хранимых процедур и определяемой пользователем функции.

Что значит развернуть базу данных

Рис. 4. размещение базы данных в обозреватель базы данных или обозреватель сервера (щелкните, чтобы просмотреть изображение с полным размером)

Щелкните правой кнопкой мыши имя базы данных и выберите пункт «опубликовать в поставщике» в контекстном меню. Запустится мастер публикации базы данных (см. рис. 5). Нажмите кнопку Далее, чтобы перейти за пределы экрана-заставки.

Что значит развернуть базу данных

Рис. 5. экран-заставка мастера публикации баз данных (щелкните, чтобы просмотреть изображение с полным размером)

На втором экране мастера перечисляются базы данных, доступные мастеру публикации баз данных, и можно выбрать, следует ли создать скрипты для всех объектов в выбранной базе данных или выбрать объекты для включения в скрипт. Выберите соответствующую базу данных и оставьте параметр «создать скрипт для всех объектов в выбранной базе данных» установленным.

Если появляется сообщение об ошибке «в базе данных DatabaseName типов, которые можно создать с помощью этого мастера, нет объектов», то при нажатии кнопки «Далее» на экране, показанном на рис. 6, убедитесь, что путь к файлу базы данных не слишком длинный. Обнаружено, что эта ошибка может возникнуть, если путь к файлу базы данных слишком длинный.

Что значит развернуть базу данных

Рис. 6. экран-заставка мастера публикации баз данных (щелкните, чтобы просмотреть изображение с полным размером)

Что значит развернуть базу данных

Рис. 7. Создание скрипта базы данных в файле или публикация ее непосредственно в поставщике веб-узла (щелкните, чтобы просмотреть изображение с полным размером)

На следующем экране появится запрос на ввод различных параметров создания скриптов. Можно указать, должен ли скрипт включать инструкции DROP для удаления существующих объектов. По умолчанию используется значение true, что нормально при развертывании базы данных в первый раз. Можно также указать, имеет ли целевая база данных SQL Server 2000, SQL Server 2005 или SQL Server 2008. Наконец, можно указать, следует ли создать скрипты для схемы и данных, только для данных или только для схемы. Схема — это коллекция объектов базы данных, таблиц, хранимых процедур, представлений и т. д. Данные — это сведения, находящиеся в таблицах.

Как показано на рис. 8, у меня есть мастер, настроенный на удаление существующих объектов базы данных, создание скрипта для базы данных SQL Server 2008, а также публикацию схемы и данных.

Что значит развернуть базу данных

На последних двух экранах суммируются действия, которые будут выполнены, а затем отображается состояние сценариев. Общий результат работы мастера заключается в том, что у нас есть файл скрипта, содержащий команды SQL, необходимые для создания базы данных в рабочей среде, и заполнять ее теми же данными, что и при разработке.

Выполняя команды SQL в базе данных рабочей среды

Теперь, когда у нас есть скрипт, содержащий команды SQL для создания базы данных, и все остальные данные остаются, выполните сценарий в рабочей базе данных. Некоторые поставщики веб-узлов предлагают текстовое поле на панели управления, где можно вводить команды SQL для выполнения в базе данных. При наличии очень большого файла скрипта этот параметр может не работать ( REVIEWS.MDF.sql например, размер файла скрипта превышает 425 КБ).

Лучшим подходом является прямое подключение к рабочему серверу базы данных с помощью SQL Server Management Studio (SSMS). Если на компьютере установлен SQL Server выпуск, отличный от Express, то, вероятно, у вас уже установлена среда SSMS. В противном случае можно скачать и установить бесплатную копию SQL Server Management Studio Express Edition.

Запустите SSMS и подключитесь к серверу базы данных веб-узлов, используя сведения, предоставленные поставщиком веб-узла.

Что значит развернуть базу данных

Рис. 9. подключение к серверу базы данных поставщика веб-узла (щелкните, чтобы просмотреть образ полного размера)

Разверните вкладку базы данных и перейдите к базе данных. Нажмите кнопку Создать запрос в левом верхнем углу панели инструментов, вставьте команды SQL из файла скрипта, созданного мастером публикации баз данных, и нажмите кнопку выполнить, чтобы выполнить эти команды на сервере рабочей базы данных. Если файл скрипта особенно большой, выполнение команд может занять несколько минут.

Что значит развернуть базу данных

Рис. 10. подключение к серверу базы данных поставщика веб-узла s (щелкните, чтобы просмотреть изображение полного размера)

Вот и все! На этом этапе база данных разработки дублируется в рабочей среде. При обновлении базы данных в среде SSMS должны отобразиться новые объекты базы данных. На рис. 11 показаны таблицы и хранимые процедуры рабочей базы данных, а также определяемые пользователем функции, которые отражают значения в базе данных разработки. Так как мы представили инструкции по публикации данных в мастере публикации баз данных, таблицы рабочих баз данных имеют те же данные, что и таблицы базы данных разработки на момент выполнения мастера. На рис. 12 показаны данные в Books таблице рабочей базы данных.

Что значит развернуть базу данных

Рис. 11. объекты базы данных дублируются в рабочей базе данных (щелкните, чтобы просмотреть изображение с полным размером)

Что значит развернуть базу данных

Рис. 12. Рабочая база данных содержит те же данные, что и в базе данных разработки (щелкните, чтобы просмотреть изображение с полным размером)

На этом этапе мы развернули базу данных разработки только в рабочей среде. Мы еще не рассматривали развертывание самого веб-приложения или проверили, какие изменения конфигурации необходимы для того, чтобы приложение в рабочей среде использовало рабочую базу данных. Эти проблемы будут рассмотрены в следующем руководстве.

Сводка

Теперь, когда книга просматривает базу данных веб-приложений в рабочей среде, мы можем развернуть приложение. Однако сведения о конфигурации веб-приложения указывают строку подключения к базе данных, а эта строка подключения ссылается на базу данных разработки. Необходимо обновить эти сведения строки подключения при развертывании сайта в рабочей среде. В следующем учебнике рассматриваются различия в конфигурации и описываются шаги, необходимые для публикации веб-узла рецензий на основе данных в рабочую среду.

Поздравляем с программированием!

Дополнительные материалы

Дополнительные сведения о разделах, обсуждаемых в этом руководстве, см. в следующих ресурсах:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *