Драйверы базы данных sqlite mysql или postgresql не установлены

Обновлено: 31.10.2024

Yoyo – это инструмент для переноса схемы базы данных. Миграции записываются в виде файлов SQL или сценариев Python, которые определяют список шагов миграции. Они могут быть такими простыми:

Установка¶

Установите yoyo-миграции с помощью PyPI, например:

Использование командной строки¶

Начать новую миграцию:

Применить миграции из миграции каталогов к базе данных PostgreSQL:

Откат миграции, ранее примененный к базе данных MySQL:

Повторное применение (т.е. откат, а затем повторное применение) миграции к базе данных SQLite в расположении /home/sheila/important.db:

Список доступных миграций:

По умолчанию yoyo-migrations запускается в интерактивном режиме, запрашивая у вас каждый файл миграции перед его применением, что позволяет легко просмотреть, какие миграции следует применить, и выполнить откат.

Подключение к базе данных¶

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

Защита паролем¶

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

Флаг -p или --prompt-password заставляет yoyo запрашивать пароль, помогая предотвратить утечку ваших учетных данных.

Файлы миграции¶

Каталог миграции содержит набор сценариев миграции. Каждый сценарий миграции представляет собой файл Python ( .py ) или файл SQL ( .sql ).

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

-0001-migration.sql ) или используйте команду yoyo new для создания подходящего имени файла.

Сценарии миграции запускаются в зависимости, а затем в порядке имен файлов.

Каждый файл миграции запускается в одной транзакции, если это поддерживается базой данных.

Миграции как скрипты Python¶

Пошаговая функция может принимать до 3 аргументов:

apply : SQL-запрос (или функция Python, см. ниже) для применения шага миграции.

rollback : (необязательно) SQL-запрос (или функция Python) для отката шага миграции.

ignore_errors : (необязательно, одно из "apply", "rollback" или "all") заставляет yoyo игнорировать ошибки базы данных либо на этапе применения, либо на этапе отката, либо на обоих этапах.

Этапы миграции как функции Python¶

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

Зависимости¶

Миграции могут объявлять зависимости от других миграций с помощью атрибута __depends__:

Если вы используете команду yoyo new, атрибут _depends__ будет заполнен автоматически.

Миграции как сценарии SQL¶

Файлы сценария миграции SQL должны называться .sql и содержать один или несколько операторов SQL, необходимых для применения миграции.

Этапы отката SQL должны быть сохранены в отдельном файле с именем .rollback.sql :

Зависимости¶

Структурированный комментарий SQL может использоваться для указания зависимостей в виде списка, разделенного пробелами:

Хук после применения¶

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

Для этого создайте специальный файл миграции с именем post-apply.py или post-apply.sql . Этот файл должен иметь тот же формат, что и любой другой файл переноса.

Файл конфигурации¶

Yoyo ищет файл конфигурации с именем yoyo.ini в текущем рабочем каталоге или любом каталоге-предке.

Если файл конфигурации не найден, yoyo предложит вам создать его, используя текущие аргументы командной строки.

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

Если вы не хотите, чтобы файл конфигурации загружался, добавьте параметр --no-config-file в параметры командной строки.

Файл конфигурации может содержать следующие параметры:

Наследование файла конфигурации и включение¶

Специальные директивы %inherit и %include разрешают наследование и включение файла конфигурации:

Подстановки и переменные окружения¶

Специальная переменная %(здесь)s будет заменена именем каталога файла конфигурации.

Переменные среды могут быть заменены тем же синтаксисом, например, %(HOME)s .

Замены нечувствительны к регистру, поэтому, например, %(HOME)s и %(home)s будут ссылаться на одну и ту же переменную.

Источники миграции¶

Yoyo считывает сценарии миграции из каталогов, указанных в параметре конфигурации источников. Пути могут включать шаблоны глобусов, например:

Вы также можете прочитать миграции из установленных пакетов Python, указав путь в специальной форме package:

Транзакции¶

Каждая миграция выполняется в отдельной транзакции. Точки сохранения используются для изоляции шагов в каждой миграции.

Если во время шага возникает ошибка, и для этого шага установлен параметр ignore_errors, то для этого отдельного шага будет выполнен откат, и выполнение начнется со следующего шага. Если параметр ignore_errors не установлен, то вся миграция будет отменена, а выполнение остановлено.

Обратите внимание, что некоторые базы данных (например, MySQL) не поддерживают откат для операторов DDL (например, операторов CREATE . и ALTER .). Для этих баз данных может потребоваться вмешательство вручную для сброса состояния базы данных в случае возникновения ошибок при переносе.

Использование группы позволяет вам вкладывать шаги, давая вам возможность управлять тем, где происходит откат. Например:

Отключение транзакций¶

Вы можете отключить обработку транзакций при переносе, установив __transactional__ = False , например:

Или для миграции SQL:

Эта функция тестируется только на серверах PostgreSQL и SQLite.

PostgreSQL¶

В PostgreSQL выполнение определенных инструкций внутри блока транзакции является ошибкой. К ним относятся:

Использование __transactional__ = False позволяет запускать их в рамках миграции

SQLite¶

В SQLite поведение транзакций по умолчанию может препятствовать доступу других инструментов к базе данных на время миграции. Использование __transactional__ = False позволяет обойти это ограничение.

Вызов Yoyo из кода Python¶

В следующем примере показано, как применить миграцию из кода Python:

Содействие¶

Сообщить о проблеме¶

Используйте средство отслеживания проблем yoyo-migrations, чтобы сообщать о проблемах.

Также существует список рассылки, где вы можете публиковать вопросы или предложения.

Вытягивающие запросы¶

Yoyo-migrations разработан на sourcehut и использует список рассылки для проверки коммитов для включения в проект.

Чтобы отправить коммиты в список рассылки:

Позаботьтесь о том, чтобы зафиксировать вашу работу в виде логически отдельных изменений. Используйте hg commit -i, чтобы зафиксировать вашу работу в виде логически отдельных изменений. Убедитесь, что каждая фиксация содержит значимое сообщение.

Когда вы будете готовы отправить свои коммиты, используйте hg config --edit, чтобы добавить следующие строки в пользовательский файл конфигурации Mercurial:

Затем используйте hg config --local, чтобы добавить следующие строки в файл конфигурации репозитория:

Запустите hg mail -o, чтобы отправить коммиты по электронной почте. Эта команда отправит все ваши коммиты; если вы хотите отправить только подмножество, обратитесь к документации по электронной почте hg.

Список рассылки¶

Журнал изменений¶

7.2.1 (выпущено 05.11.2020)¶

Исправление: разрешать значениям конфигурации, переданным из среды, содержать знаки процента (спасибо Эндрю Гейтсу за исправление)

Добавить поддержку аргумента --prompt-password для команды break-lock

Добавить поддержку Python 3.9 (без изменений кода)

Отказ от поддержки Python 3.5 (код не меняется)

7.2.0 (выпущено 17 июля 2020 г.)¶

Исправление: исправлена ​​интерполяция переменных среды в конфигурационном файле, когда имена переменных указаны в верхнем регистре

Исправление: повышена надежность сценария командной строки (спасибо Крису ван Пелту за исправление)

Исправление: скрипт новой миграции теперь должен работать для пользователей Windows (спасибо Джимми Лагуне Монтано за исправление)

Добавить экспериментальную поддержку серверной части базы данных Snowflake (спасибо Эммету Мерфи за исправление)

7.1.2 (выпущено 16 июня 2020 г.)¶

Исправление: исправлена ​​ошибка обнаружения циклических зависимостей, появившаяся в версии 7.1.1

7.1.1 (выпущено 15 июня 2020 г.)¶

Исправление: инструмент командной строки больше не показывает сообщение об ошибке, если вы не укажете команду

Исправление: миграции поддерживаются в порядке имен файлов везде, где это позволяет порядок зависимостей

7.1.0 (выпущено 08.06.2020)¶

Добавить команду списка йойо

Добавить поддержку новой директивы %include в файлы конфигурации

Исправление: просмотр источника миграции в интерактивном режиме больше не вызывает исключение

7.0.2 (выпущено 09.03.2020)¶

Исправление: удалено использование f-строк для восстановления совместимости с Python 3.5

7.0.1 (выпущено 18 февраля 2020 г.)¶

Исправление: откат миграции файлов SQL теперь работает правильно

Поддержка специальных параметров шифрования MySQL при подключении

Исправление: скрипт yoyo new теперь всегда создает временные файлы с правильным расширением файла

7.0.0 (выпущено 20 января 2020 г.)¶

Добавить поддержку Python 3.8

Отказ от совместимости с Python 2.7 и Python 3.6

Разрешить указывать миграции как файлы .SQL-файлы

Загружать миграции как модули; это позволяет сценариям миграции получать доступ к атрибуту __file__.

Исправление: флаг --all теперь работает должным образом с командой отката

Исправление: исправлена ​​ошибка при работе с нестандартной схемой в PostgreSQL

6.1.0 (выпущено 13 февраля 2019 г.)¶

Параметр конфигурации sources теперь может содержать шаблоны подстановок и ссылки на миграции, установленные в пакетах python.

Исправление: откат группы шагов теперь работает должным образом (спасибо Джону Соренсену)

В этой версии представлены обратно несовместимые изменения. Внимательно прочтите этот файл перед обновлением.

Исправление: теперь работает с базами данных MySQL+utf8mb4. Для этого требуется новая внутренняя схема для записи примененных миграций, и ваша база данных будет автоматически обновлена ​​при первом запуске этой версии. После обновления ваша база данных больше не будет совместима со старыми версиями миграции yoyo. (спасибо Джеймсу Соколу и другим за отчет и обсуждение реализации)

Исправление: команда yoyo break-lock больше не работает

Все операции переноса (apply, rollback, mark, unmark) теперь регистрируются в таблице _yoyo_log (спасибо Matt Williams за предложение).

Сценарий CLI теперь отображает список выбранных миграций перед запросом окончательного подтверждения в интерактивном режиме.

Добавлена ​​поддержка флага __transactional__ в миграции sqlite

Исправление: исправлено исключение прописных букв из сгенерированных имен файлов (спасибо Romain Godefroy)

Исправление: исправление проблем с запуском Python 3 в Windows

Исправление: добавление параметра схемы в строки подключения PostgreSQL больше не вызывает исключение (спасибо Мохамеду Хабибу за отчет)

Откат yoyo теперь откатывает только одну миграцию в пакетном режиме (если не указано -revision или -all) (спасибо A A за идею и первоначальную реализацию)

Добавлена ​​поддержка Oracle через серверную часть cx_Oracle (спасибо Дональду Сарратту)

Добавлена ​​поддержка блокировки таблиц миграции во время операций для предотвращения конфликтов при одновременном запуске нескольких процессов yoyo (спасибо Artimi NA за предложение и первоначальную реализацию)

Удалена зависимость от python-slugify, чтобы избежать загрузки кода под лицензией GPL (спасибо Оливье Чедру)

Добавлена ​​поддержка параметра схемы для баз данных PostgreSQL (спасибо Тобиашу Штанселю)

Добавлена ​​поддержка произвольных параметров ключевых слов в URL-адресах PostgreSQL, что позволяет указать, например, sslmode=require.

Исправление: относительные пути правильно разрешаются в файле конфигурации.

Исправление: исправлен порядок применения миграций с помощью команды reapply (спасибо Goohu)

5.0.5 (выпущено 12 января 2017 г.)¶

Добавлена ​​поддержка флага __transactional__ = False в файлах миграции, что позволяет миграциям запускать команды в PostgreSQL, вызывающие ошибки при выполнении внутри блока транзакции (например, «СОЗДАТЬ БАЗУ ДАННЫХ»)

Исправление: исправлен параметр unix_socket для соединений mysql

5.0.4 (выпущено 4 сентября 2016 г.)¶

Исправление: исправлен сбой, когда несколько миграций имеют одинаковую зависимость (спасибо smotko за отчет)

5.0.3 (выпущено 3 июля 2016 г.)¶

Исправление: исправлено исключение при интерактивном создании новой миграции с помощью yoyo new

5.0.2 (выпущено 21 июня 2016 г.)¶

Добавлены методы DatabaseBackend.apply_migrations_only и run_post_hooks. Это позволяет коду Python, взаимодействующему с yoyo, запускать миграции и post_hooks отдельно, если это необходимо (спасибо Роби Вану за сообщение об этом и обсуждение возможных исправлений)

Исправление: исправлена ​​ошибка дублирования ключа при использовании хуков post-apply (спасибо Роби Вану за отчет)

Исправление: шаги миграции больше не загружаются несколько раз, если read_migrations вызывается более одного раза (спасибо Кайлу МакЧесни за отчет)

Исправление: убедитесь, что параметр migration_table считывается из файла конфигурации (спасибо Фредерику Хольену за отчет и Маноло Микоцци за исправление)

5.0.1 (выпущено 13 ноября 2015 г.)¶

Исправление: файлы миграции теперь именуются последовательно при использовании опции префикса (спасибо Игорю Цареву)

5.0.0 (выпущено 13 ноября 2015 г.)¶

В этой версии представлены обратно несовместимые изменения. Внимательно прочтите этот файл перед обновлением.

Файл конфигурации теперь хранится для каждого проекта, а не для исходного каталога миграции. Это позволяет совместно использовать исходный каталог миграции для нескольких проектов.

Изменился API для программного вызова yoyo. Обратитесь к README за актуальным примером вызова yoyo из кода Python.

Улучшенный анализ URL

Разрешить URI базы данных, содержащие имена пользователей с символом «@»

Опция командной строки --no-cache была переименована в --no-config-file . Старое имя сохраняется как псевдоним для обратной совместимости

Теперь база данных должна быть предоставлена ​​с использованием флага командной строки --database/-d.Это позволяет изменять базу данных при вызове yoyo без необходимости повторного указания каталогов миграции.

Добавлен параметр командной строки –revision. В случае применения это приводит к применению указанной миграции, а также любых зависимостей. В случае отката указанная версия и любые другие миграции, которые от нее зависят, удаляются.

Добавлены команды «отметить» и «снять отметку», позволяющие помечать миграции в базе данных без их фактического запуска

Обработка транзакций изменилась. Каждая миграция теперь всегда выполняется в одной транзакции, а отдельные шаги выполняются во вложенных транзакциях (с использованием точек сохранения). Функция transaction() по-прежнему доступна для обратной совместимости, но теперь создает точку сохранения, а не полную транзакцию.

Драйвер MySQL по умолчанию был изменен на PyMySQL по причинам совместимости с Python 3. MySQLdb можно использовать, указав схему mysql+mysqldb://.

Ошибки, возникающие при создании таблицы _yoyo_migrations, теперь выдаются, а не просто игнорируются (спасибо Джеймсу Соколу).

Версия 4.2.5¶

Исправлено для версии драйвера pyscopg2 >=2.6

Ускоренная загрузка сценариев переноса

Зависимости между миграциями можно добавить с помощью атрибута __depends__

Прекращена поддержка Python 2.6

Версия 4.2.4¶

Исправить неправильно управляемый выпуск 4.2.3

Версия 4.2.3¶

Миграциям теперь присваивается дата в формате UTC (благодаря robi wan)

Исправления для установки и использования в Python 3

Версия 4.2.2¶

Сценарии миграции могут начинаться с шага импорта yoyo, транзакции . Это предотвращает выдачу ошибок линтерами (например, flake8) по неопределенным именам.

Исправление: функции, объявленные в файле миграции, могут получить доступ к глобальному пространству имен скрипта

Версия 4.2.1¶

Исправление для предыдущего выпуска, из-за которого были пропущены важные файлы

Версия 4.2.0¶

Удален пакет пространства имен yoyo.migrate. Любой код, который напрямую использует yoyo API, должен иметь какие-либо изменения импорта, например, это:

Следует изменить на это:

Исправление: параметр migration_table не передавался в read_migrations, что приводило к игнорированию значения

Версия 4.1.6¶

Добавлена ​​поддержка Windows (спасибо Питеру Шиннерсу)

Версия 4.1.5¶

Настройте обработчики журналов таким образом, чтобы ключ -v вызывал вывод вывода на консоль (спасибо Эндрю Нелису).

Переключатель командной строки

-v больше не принимает аргумент, но вместо этого может быть указан несколько раз (например, используйте -vvv вместо -v3). --verbosity сохраняет старое поведение.

Версия 4.1.4¶

Исправление для хуков post apply

Версия 4.1.3¶

Имя таблицы миграции по умолчанию изменено обратно на ‘_yoyo_migration’

Версия 4.1.2¶

Исправлена ​​ошибка при работе в интерактивном режиме

Версия 4.1.1¶

Появился параметр конфигурации для имени таблицы переноса

Версия 4.1.0¶

Появилась возможность выполнять шаги внутри транзакции (спасибо Райану Уильямсу за предложение этой функции, а также различные исправления ошибок).

Миграция с последующим применением может выполняться после каждой успешной миграции вверх

SQLite нельзя напрямую сравнивать с механизмами баз данных SQL клиент/сервер, такими как MySQL, Oracle, PostgreSQL или SQL Server, поскольку SQLite пытается решить другую проблему.

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

SQLite не конкурирует с клиент-серверными базами данных. SQLite конкурирует с fopen().

Ситуации, в которых SQLite работает хорошо

  • Встроенные устройства и Интернет вещей

Поскольку база данных SQLite не требует администрирования, она хорошо работает на устройствах, которые должны работать без квалифицированной поддержки со стороны человека. SQLite хорошо подходит для использования в мобильных телефонах, телевизионных приставках, телевизорах, игровых приставках, камерах, часах, кухонной технике, термостатах, автомобилях, станках, самолетах, дистанционных датчиках, дронах, медицинских устройствах и роботах: «Интернете». вещей".

Формат файла приложения

SQLite часто используется в качестве формата файла на диске для настольных приложений, таких как системы контроля версий, инструменты финансового анализа, наборы для каталогизации и редактирования мультимедиа, пакеты САПР, программы для ведения учета и т. д. Традиционная операция File/Open вызывает sqlite3_open() для присоединения к файлу базы данных. Обновления происходят автоматически по мере изменения содержимого приложения, поэтому пункт меню «Файл/Сохранить» становится излишним. Параметр меню «Файл/Сохранить как» можно реализовать с помощью API резервного копирования.

SQLite прекрасно работает в качестве ядра базы данных для большинства веб-сайтов с низким и средним трафиком (то есть для большинства веб-сайтов).Объем веб-трафика, который может обрабатывать SQLite, зависит от того, насколько интенсивно веб-сайт использует свою базу данных. Вообще говоря, любой сайт с посещаемостью менее 100 000 в день должен нормально работать с SQLite. Цифра в 100 000 посещений в день — это консервативная оценка, а не жесткая верхняя граница. Было продемонстрировано, что SQLite работает с объемом трафика, в 10 раз большим.

Анализ данных

Люди, которые понимают SQL, могут использовать оболочку командной строки sqlite3 (или различные сторонние программы доступа к SQLite) для анализа больших наборов данных. Необработанные данные можно импортировать из CSV-файлов, затем эти данные можно нарезать и нарезать кубиками для создания множества сводных отчетов. Более сложный анализ можно выполнить с помощью простых скриптов, написанных на Tcl или Python (оба из них поставляются со встроенным SQLite), или на R или других языках с использованием легкодоступных адаптеров. Возможное использование включает анализ журналов веб-сайтов, анализ спортивной статистики, составление показателей программирования и анализ результатов экспериментов. Многие исследователи биоинформатики используют SQLite таким образом.

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

Кэш корпоративных данных

Многие приложения используют SQLite в качестве кэша соответствующего контента из корпоративной СУБД. Это уменьшает задержку, так как большинство запросов теперь выполняются в локальном кеше и избегают двустороннего сетевого обхода. Это также снижает нагрузку на сеть и на сервер центральной базы данных. И во многих случаях это означает, что клиентское приложение может продолжать работу во время перебоев в работе сети.

База данных на стороне сервера

Разработчики систем сообщают об успешном использовании SQLite в качестве хранилища данных в серверных приложениях, работающих в центре обработки данных, или, другими словами, об использовании SQLite в качестве базового механизма хранения для сервера базы данных конкретного приложения.

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

Разработчики сообщают, что в этом сценарии SQLite часто работает быстрее, чем ядро ​​базы данных SQL клиент/сервер. Запросы к базе данных сериализуются сервером, поэтому параллелизм не является проблемой. Параллелизм также улучшается за счет «сегментирования базы данных»: использования отдельных файлов базы данных для разных поддоменов. Например, на сервере может быть отдельная база данных SQLite для каждого пользователя, так что сервер может обрабатывать сотни или тысячи одновременных подключений, но каждая база данных SQLite используется только одним подключением.

Формат передачи данных

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

Файловый архив и/или контейнер данных

Идея архива SQLite показывает, как SQLite можно использовать вместо архивов ZIP или Tarballs. Архив файлов, хранящихся в SQLite, лишь немного больше, а в некоторых случаях даже меньше, чем эквивалентный ZIP-архив. Кроме того, архив SQLite поддерживает поэтапное и поэтапное обновление, а также возможность хранить гораздо более богатые метаданные.

Fossil версии 2.5 и более поздних версий предлагает архивные файлы SQLite в качестве формата для загрузки в дополнение к традиционным архивам tarball и ZIP. Оболочка командной строки sqlite3.exe версии 3.22.0 и более поздних версий создает, выводит список или распаковывает архивацию SQL с помощью команды .archive.

SQLite — это хорошее решение для любой ситуации, когда требуется объединить разнообразный контент в автономный пакет с самоописанием для отправки по сети. Контент закодирован в четко определенном, кроссплатформенном и стабильном формате файла. Кодирование является эффективным, и получатели могут извлекать небольшие подмножества содержимого без необходимости чтения и анализа всего файла.

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

Замена специальных дисковых файлов

Внутренние или временные базы данных

Для программ, содержащих большое количество данных, которые необходимо просеивать и сортировать различными способами, зачастую проще и быстрее загрузить данные в базу данных SQLite в памяти и использовать запросы с соединениями и предложениями ORDER BY для извлечения данных. данные в нужной форме и порядке, а не пытаться кодировать те же операции вручную. Такое внутреннее использование базы данных SQL также дает программе большую гибкость, поскольку можно добавлять новые столбцы и индексы без необходимости перекодировать каждый запрос.

Замена корпоративной базы данных во время демонстрации или тестирования

Клиентские приложения обычно используют общий интерфейс базы данных, который позволяет подключаться к различным ядрам баз данных SQL. Имеет смысл включить SQLite в набор поддерживаемых баз данных и статически связать механизм SQLite с клиентом. Таким образом, клиентскую программу можно использовать отдельно с файлом данных SQLite для тестирования или демонстрации.

Образование и обучение

Поскольку его легко настроить и использовать (установка тривиальна: просто скопируйте исполняемый файл sqlite3 или sqlite3.exe на целевую машину и запустите его), SQLite является хорошим механизмом базы данных для использования при обучении SQL. Студенты могут легко создавать столько баз данных, сколько захотят, и могут отправлять базы данных по электронной почте преподавателю для комментариев или оценок. Для более продвинутых студентов, которые заинтересованы в изучении реализации РСУБД, модульный, хорошо прокомментированный и задокументированный код SQLite может послужить хорошей основой.

Экспериментальные расширения языка SQL

Простой модульный дизайн SQLite делает его хорошей платформой для создания прототипов новых экспериментальных функций или идей языка баз данных.

Ситуации, в которых клиент-серверная СУБД может работать лучше

Приложения клиент/сервер

Если есть много клиентских программ, отправляющих SQL в одну и ту же базу данных по сети, используйте механизм базы данных клиент/сервер вместо SQLite. SQLite будет работать в сетевой файловой системе, но из-за задержки, связанной с большинством сетевых файловых систем, производительность будет невысокой. Кроме того, логика блокировки файлов ошибочна во многих реализациях сетевых файловых систем (как в Unix, так и в Windows). Если блокировка файлов не работает должным образом, два или более клиентов могут попытаться одновременно изменить одну и ту же часть одной и той же базы данных, что приведет к повреждению. Поскольку эта проблема возникает из-за ошибок в базовой реализации файловой системы, SQLite ничего не может сделать, чтобы ее предотвратить.

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

Веб-сайты большого объема

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

Очень большие наборы данных

Размер базы данных SQLite ограничен 281 терабайтом (2 48 байта, 256 тибибайт). И даже если бы он мог работать с большими базами данных, SQLite хранит всю базу данных в одном файле на диске, и многие файловые системы ограничивают максимальный размер файлов чем-то меньшим. Поэтому, если вы рассматриваете базы данных такого масштаба, вам следует подумать об использовании механизма базы данных клиент/сервер, который распределяет свое содержимое по нескольким файлам на диске и, возможно, по нескольким томам.

Высокий параллелизм

SQLite поддерживает неограниченное количество одновременных операций чтения, но разрешает только одну запись в любой момент времени. Для многих ситуаций это не проблема. Писатели стоят в очереди. Каждое приложение работает со своей базой данных быстро и движется дальше, и ни одна блокировка не длится более нескольких десятков миллисекунд. Но есть приложения, которым требуется больше параллелизма, и этим приложениям может потребоваться другое решение.

Контрольный список для выбора правильного ядра базы данных

Отделены ли данные от приложения сетью? → выберите клиент/сервер

Механизмы реляционных баз данных действуют как фильтры данных, сокращающие пропускную способность. Поэтому лучше всего хранить ядро ​​базы данных и данные на одном и том же физическом устройстве, чтобы высокоскоростное соединение между ядром и диском не проходило через сеть, а только соединение между приложением и ядром с более низкой пропускной способностью.< /p>

Но SQLite встроен в приложение. Таким образом, если данные находятся на отдельном устройстве от приложения, требуется, чтобы канал между ядром и диском с более высокой пропускной способностью проходил через сеть. Это работает, но неоптимально. Следовательно, обычно лучше выбирать механизм базы данных клиент/сервер, когда данные находятся на отдельном устройстве от приложения.

Примечание. В этом правиле под "приложением" понимается код, выполняющий операторы SQL.Если «приложение» — это сервер приложений, а содержимое находится на том же физическом компьютере, что и сервер приложений, то SQLite все равно может подойти, даже если конечный пользователь находится в другом сетевом переходе.

Много одновременных авторов? → выберите клиент/сервер

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

Чтобы самостоятельно попробовать выполнить некоторые SQL-запросы и выполнить упражнения, включенные в этот курс, вам необходимо установить на свой компьютер систему управления базами данных на основе SQL. Существует три основных бесплатных реализации: SQLite, MySQL и PostgreSQL (обычно называемая Postgres). Здесь мы познакомим вас с процедурами установки для этих трех систем с инструкциями для пользователей Windows и Mac OS X.

SQLite

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

Windows: перейдите на страницу загрузки SQLite и найдите заголовок «Предварительно скомпилированные двоичные файлы для Windows». Загрузите файл .zip для оболочки командной строки (не для библиотеки DLL или анализа). Извлеките файл sqlite3.exe и поместите его куда угодно; рабочий стол - хорошее начало. Дважды щелкните извлеченный исполняемый файл sqlite3, чтобы запустить его.

Mac OS X: перейдите на страницу загрузки SQLite и найдите заголовок «Предварительно скомпилированные двоичные файлы для Mac OS X». Загрузите файл .zip для оболочки командной строки (не для анализа). Дважды щелкните, чтобы извлечь файл sqlite3, и поместите его куда угодно; рабочий стол - хорошее начало. Дважды щелкните извлеченный исполняемый файл sqlite3, чтобы запустить его.

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


Чтобы попробовать выполнить файл SQL из оболочки командной строки, загрузите начальный сценарий, поместите его в тот же каталог, что и исполняемый файл SQLite, и введите в командной строке следующее:


Вывод должен быть таким же, как при копировании-вставке. Чтобы просмотреть полный список специфичных для SQLite команд, таких как «.read», введите «.help» или обратитесь к списку специальных команд в документации по командной оболочке SQLite.

Когда вы закончите, введите '.exit', чтобы выйти из программы. Обратите внимание, что состояние базы данных не сохраняется между сеансами, поэтому вам придется перезагружать любые данные с нуля для каждого сеанса. Если вы хотите избежать этого и знакомы с командной строкой в ​​вашей ОС, вы можете запустить оттуда SQLite с одним аргументом:


Это заставит SQLite открыть и использовать файл с именем «database-filename» или создать его, если он еще не существует. Состояние базы данных будет сохраняться в этом файле во время работы, и вы сможете снова использовать его позже.

Более подробные инструкции см. в официальных примечаниях по установке MySQL.

Windows: перейдите на страницу загрузки MySQL Community Server и выберите установщик MSI для вашей архитектуры (если вы сомневаетесь, 32-разрядная версия является безопасным выбором). Вы можете зарегистрироваться как новый пользователь или продолжить загрузку без регистрации. Запустите программу установки (подойдет «обычная» установка). Затем программа установки запустит мастер настройки экземпляра сервера MySQL. Установите MySQL как службу Windows и включите каталог bin в Windows PATH. Создайте корневую учетную запись с надлежащим безопасным паролем (и таким, который вы запомните!), и обязательно отключите root-доступ с удаленных компьютеров. После завершения MySQL будет работать как служба на вашем компьютере. Чтобы подключиться и использовать его, выберите «Тестовый пользователь MySQL» в каталоге MySQL в меню «Пуск».

Mac OS X: перейдите на страницу загрузки MySQL Community Server и выберите архив DMG для вашей архитектуры (если вы сомневаетесь, 32-разрядная версия является безопасным выбором). Вы можете зарегистрироваться как новый пользователь или продолжить загрузку без регистрации. Откройте файл образа диска и запустите оба установщика пакетов (MySQL и MySQLStartupItem). Все стандартные настройки и места установки должны быть в порядке. Чтобы получить доступ к оболочке MySQL, вам потребуется открыть окно терминала и выполнить следующие команды:
Первая команда запускает сервер MySQL (для продолжения, скорее всего, потребуется ввести пароль для входа в систему), а вторая подключается к серверу и открывает оболочку MySQL. Обратите внимание, что установка по умолчанию не использует пароли; см. официальную документацию по защите исходных учетных записей MySQL, чтобы настроить свои собственные.

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


Чтобы попробовать выполнить файл SQL из командной строки, загрузите начальный сценарий, поместите его в такое место, где вы сможете легко запомнить путь к файлу, и введите в командной строке следующее (где ~PATH~ означает путь к файлу):


Вывод должен быть таким же, как при копировании-вставке. Чтобы просмотреть полный список специфичных для MySQL команд, таких как «source», введите «help» или обратитесь к списку команд в документации MySQL.

Когда вы закончите, введите "quit", чтобы закрыть соединение. Состояние базы данных будет сохранено, поэтому все ваши таблицы останутся на месте, когда вы снова подключитесь позже.

Более подробные инструкции см. в руководствах по установке PostgreSQL.

Windows: перейдите на страницу загрузки PostgreSQL и выберите установщик версии 9 для вашей архитектуры (если вы сомневаетесь, 32-разрядная версия является безопасным выбором). Все настройки по умолчанию в порядке; настроить как вам нравится. Обязательно установите безопасный пароль (и тот, который вы запомните!) для учетной записи суперпользователя базы данных. Вам не понадобится Stack Builder для упражнений этого курса. После установки вы можете запустить psql оболочки Postgres SQL, связанный с папкой Postgres 9.0 в меню «Пуск». Нажмите Enter, чтобы использовать сервер, базу данных, порт и имя пользователя по умолчанию; затем введите пароль, который вы ввели ранее.

Mac OS X: процедура установки для Mac OS X не так проста и требует некоторого знакомства с командной строкой, готовности работать с системными настройками и большего пространства для описания, чем здесь. Для начала просмотрите это руководство с помощью диспетчера пакетов Homebrew или страницы загрузки Postgres и заметок разработчика Apple.

Когда вы находитесь в оболочке Postgres SQL, у вас есть три варианта выполнения запросов: вы можете каждый раз вводить их вручную, копировать их откуда-то еще и вставлять в окно оболочки SQL или выполнять файл как сценарий. Чтобы попробовать последние два варианта, взгляните на наш стартовый скрипт Postgres. Если вы скопируете и вставите его содержимое в окно Postgres, он должен сгенерировать следующий вывод (при первом запуске вы можете получить сообщение о том, что таблица не существует; это нормально):


Чтобы попробовать выполнить файл SQL из оболочки SQL, загрузите начальный сценарий, поместите его в такое место, где вы сможете легко запомнить путь к файлу, и введите в командной строке следующее (где ~PATH~ представляет собой путь в файл):


Вывод должен быть таким же, как и при использовании метода копирования-вставки. Чтобы просмотреть полный список специфичных для Postgres команд вывода, таких как '\i', введите '\?' или обратитесь к списку метакоманд в документации Postgres psql.

Когда вы закончите, введите '\q', чтобы закрыть соединение. Состояние базы данных будет сохранено, поэтому все ваши таблицы останутся на месте, когда вы снова подключитесь позже.

Это пошаговое руководство поможет вам приступить к подключению вашего проекта в WSL к базе данных. Начните работу с MySQL, PostgreSQL, MongoDB, Redis, Microsoft SQL Server или SQLite.

Предпосылки

  • Под управлением Windows 10, обновленной до версии 2004, сборка 19041 или выше. .
  • Распределение Linux работает в режиме WSL 2.

Различия между системами баз данных

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

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

PostgreSQL (иногда называемая Postgres) также является реляционной базой данных SQL с открытым исходным кодом, ориентированной на расширяемость и соответствие стандартам. Теперь он также может обрабатывать JSON, но, как правило, лучше подходит для структурированных данных, вертикального масштабирования и потребностей, совместимых с ACID, таких как электронная коммерция и финансовые транзакции.

Microsoft SQL Server включает SQL Server для Windows, SQL Server для Linux и SQL для Azure. Это также системы управления реляционными базами данных, установленные на серверах с основной функцией хранения и извлечения данных по запросу программных приложений.

SQLite — это автономная файловая "бессерверная" база данных с открытым исходным кодом, известная своей портативностью, надежностью и хорошей производительностью даже в средах с малым объемом памяти.

MongoDB — это база данных документов NoSQL с открытым исходным кодом, предназначенная для работы с JSON и хранения данных без схемы.Его можно масштабировать по горизонтали, а это означает, что несколько небольших машин будут выполнять работу за вас. Это удобно для гибкости и неструктурированных данных, а также для кэширования аналитики в реальном времени.

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

Тип базы данных, которую вы выбираете, должен зависеть от типа приложения, с которым вы будете использовать базу данных. Мы рекомендуем вам ознакомиться с преимуществами и недостатками структурированных и неструктурированных баз данных и выбрать их в зависимости от вашего варианта использования.

Установите MySQL

Чтобы установить MySQL на WSL (например, Ubuntu):

  1. Откройте терминал WSL (например, Ubuntu).
  2. Обновите пакеты Ubuntu: sudo apt update
  3. После обновления пакетов установите MySQL с помощью: sudo apt install mysql-server
  4. Подтвердите установку и получите номер версии: mysql --version

Вы также можете запустить прилагаемый скрипт безопасности. Это изменяет некоторые менее безопасные параметры по умолчанию для таких вещей, как удаленный вход в систему root и примеры пользователей. Чтобы запустить скрипт безопасности:

  1. Запустите сервер MySQL: sudo /etc/init.d/mysql start
  2. Запустите скрипт безопасности: sudo mysql_secure_installation
  3. В первом запросе вас спросят, хотите ли вы настроить подключаемый модуль проверки пароля, который можно использовать для проверки надежности вашего пароля MySQL. Затем вы установите пароль для пользователя root MySQL, решите, следует ли удалять анонимных пользователей, решите, разрешить ли пользователю root входить в систему как локально, так и удаленно, решить, следует ли удалить тестовую базу данных, и, наконец, решить, следует ли немедленно перезагрузите таблицы привилегий.

Чтобы открыть приглашение MySQL, введите: sudo mysql

Чтобы просмотреть доступные базы данных, в командной строке MySQL введите: SHOW DATABASES;

Чтобы создать новую базу данных, введите: CREATE DATABASE имя_базы_данных;

Чтобы удалить базу данных, введите: DROP DATABASE имя_базы_данных;

Подробнее о работе с базами данных MySQL см. в документации по MySQL.

Для работы с базами данных MySQL в VS Code попробуйте расширение MySQL.

Установите PostgreSQL

Чтобы установить PostgreSQL на WSL (например, Ubuntu):

  1. Откройте терминал WSL (например, Ubuntu).
  2. Обновите пакеты Ubuntu: sudo apt update
  3. После обновления пакетов установите PostgreSQL (и пакет -contrib с некоторыми полезными утилитами) с помощью: sudo apt install postgresql postgresql-contrib
  4. Подтвердите установку и получите номер версии: psql --version

После установки PostgreSQL необходимо знать 3 команды:

  • статус службы sudo postgresql для проверки состояния вашей базы данных.
  • Служба sudo postgresql start запускает вашу базу данных.
  • остановить службу sudo postgresql, чтобы остановить работу вашей базы данных.

Пользователю-администратору по умолчанию, postgres , требуется назначенный пароль для подключения к базе данных. Чтобы установить пароль:

  1. Введите команду: sudo passwd postgres
  2. Появится запрос на ввод нового пароля.
  3. Закройте и снова откройте терминал.

Чтобы запустить PostgreSQL с оболочкой psql:

  1. Запустите службу postgres: sudo service postgresql start
  2. Подключитесь к службе postgres и откройте оболочку psql: sudo -u postgres psql

Кроме того, вы можете открыть оболочку psql, переключившись на пользователя postgres с помощью: su - postgres и затем введя команду: psql .

Чтобы узнать, какие учетные записи пользователей были созданы в вашей установке PostgreSQL, используйте в терминале WSL: psql -c "\du" . или просто \du, если у вас открыта оболочка psql. Эта команда отобразит столбцы: Имя пользователя учетной записи, Список атрибутов ролей и Член групп ролей. Чтобы вернуться в командную строку, введите: q .

Подробнее о работе с базами данных PostgreSQL см. в документации PostgreSQL.

Для работы с базами данных PostgreSQL в VS Code попробуйте расширение PostgreSQL.

Установите MongoDB

Чтобы установить MongoDB (версия 5.0) на WSL (Ubuntu 20.04):

  1. Откройте терминал WSL (например, Ubuntu) и перейдите в свой домашний каталог: cd ~
  2. Обновите пакеты Ubuntu: sudo apt update
  3. Импортируйте открытый ключ, используемый системой управления пакетами MongoDB: wget -qO — https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key добавить -
  4. Создайте файл списка для MongoDB: echo "deb [arch=amd64,arm64] https://repo.mongodb.org/apt/ubuntu focus/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
  5. Перезагрузите локальную базу данных пакетов: sudo apt-get update
  6. Установите пакеты MongoDB: sudo apt-get install -y mongodb-org
  7. Подтвердите установку и получите номер версии: mongod --version
  8. Создайте каталог для хранения данных: mkdir -p ~/data/db
  9. Запустите экземпляр Mongo: sudo mongod --dbpath ~/data/db
  10. Проверьте, работает ли ваш экземпляр MongoDB: ps -e | grep 'монгод'
  11. Чтобы выйти из оболочки MongoDB, используйте сочетания клавиш: Ctrl + C.

Системные различия инициализации MongoDB

В приведенном выше примере мы запускали MongoDB напрямую. Другие руководства могут запускать MongoDB с помощью встроенной системы инициализации операционной системы. Вы можете увидеть команду sudo systemctl status mongodb, используемую в руководствах или статьях. В настоящее время WSL не поддерживает systemd (система управления службами в Linux).

Вы не заметите разницы, но если в учебнике рекомендуется использовать sudo systemctl , вместо этого используйте: sudo /etc/init.d/ . Например, sudo systemctl status docker для WSL будет sudo /etc/init.d/docker status. или вы также можете использовать статус докера службы sudo.

Добавьте сценарий инициализации для запуска MongoDB как службы

Приведенные выше инструкции по установке позволяют установить версию MongoDB, которая не включает скрипт автоматически в /etc/init.d/ . Если вы хотите использовать служебные команды, вы можете загрузить скрипт init.d для mongodb из этого источника, поместить его вручную в виде файла по этому пути: /etc/init.d/mongodb, а затем вы можете запустить Mongo как служба с использованием sudo service mongodb start .

  1. Загрузите сценарий init.d для MongoDB: curl https://raw.githubusercontent.com/mongodb/mongo/master/debian/init.d | sudo tee /etc/init.d/mongodb >/dev/null
  2. Назначьте разрешения на выполнение этого скрипта: sudo chmod +x /etc/init.d/mongodb
  3. Теперь вы можете использовать служебные команды MongoDB:
    • статус службы sudo mongodb для проверки состояния вашей базы данных. Вы должны увидеть ответ [Fail], если база данных не запущена.
    • Служба sudo mongodb start запускает вашу базу данных. Вы должны увидеть ответ [ОК].
    • остановить службу sudo mongodb, чтобы остановить работу вашей базы данных.
  4. Убедитесь, что вы подключены к серверу базы данных с помощью диагностической команды: mongo --eval 'db.runCommand()' Это выведет текущую версию базы данных, адрес и порт сервера, а также вывод команды состояния. Значение 1 для поля "ok" в ответе указывает на то, что сервер работает.

MongoDB имеет несколько параметров по умолчанию, в том числе хранение данных в /data/db и работу через порт 27017. Кроме того, mongod — это демон (хост-процесс для базы данных), а mongo — это оболочка командной строки, которая подключается к определенному экземпляру. из монгода.

VS Code поддерживает работу с базами данных MongoDB через расширение Azure CosmosDB. Вы можете создавать базы данных MongoDB, управлять ими и запрашивать их из VS Code. Чтобы узнать больше, посетите документацию VS Code: Работа с MongoDB.

Подробнее читайте в документации по MongoDB:

Установите Microsoft SQL Server

Чтобы установить SQL Server на WSL (например, Ubuntu), следуйте этому краткому руководству: Установите SQL Server и создайте базу данных на Ubuntu.

Для работы с базами данных Microsoft SQL Server в VS Code попробуйте расширение MSSQL.

Установите SQLite

Чтобы установить SQLite на WSL (например, Ubuntu):

  1. Откройте терминал WSL (например, Ubuntu).
  2. Обновите пакеты Ubuntu: sudo apt update
  3. После обновления пакетов установите SQLite3 с помощью: sudo apt install sqlite3
  4. Подтвердите установку и получите номер версии: sqlite3 --version

Чтобы создать тестовую базу данных с именем "example.db", введите: sqlite3 example.db

Чтобы просмотреть список ваших баз данных SQLite, введите: .databases

Чтобы увидеть состояние вашей базы данных, введите: .dbinfo ?DB?

База данных будет пустой после создания. Вы можете создать новую таблицу для своей базы данных с пустой командой CREATE TABLE (col INTEGER); .

Теперь вход в .dbinfo ?DB? покажет базу данных, которую вы создали.

Чтобы закрыть приглашение SQLite, введите: .exit

Дополнительную информацию о работе с базой данных SQLite см. в документации по SQLite.

Для работы с базами данных SQLite в VS Code попробуйте расширение SQLite.

Установите Redis

Чтобы установить Redis на WSL (например, Ubuntu):

  1. Откройте терминал WSL (например, Ubuntu).
  2. Обновите пакеты Ubuntu: sudo apt update
  3. После обновления пакетов установите Redis с помощью: sudo apt install redis-server
  4. Подтвердите установку и получите номер версии: redis-server --version

Чтобы запустить сервер Redis: sudo service redis-server start

Проверьте, работает ли Redis (redis-cli — это утилита интерфейса командной строки для взаимодействия с Redis): redis-cli ping должен вернуть ответ «PONG».

Чтобы остановить работу вашего сервера Redis: sudo service redis-server stop

Дополнительную информацию о работе с базой данных Redis см. в документации Redis.

Для работы с базами данных Redis в VS Code попробуйте расширение Redis.

Просмотр запущенных служб и настройка псевдонимов профилей

Чтобы просмотреть службы, запущенные в настоящее время в дистрибутиве WSL, введите: service --status-all

Ввод sudo service mongodb start или sudo service postgres start и sudo -u postgrest psql может стать утомительным. Однако вы можете настроить псевдонимы в своем файле .profile на WSL, чтобы эти команды можно было использовать быстрее и легче запоминать.

Чтобы настроить собственный псевдоним или ярлык для выполнения этих команд:

Откройте терминал WSL и введите cd ~, чтобы убедиться, что вы находитесь в корневом каталоге.

Откройте файл .profile, который управляет настройками вашего терминала, с помощью текстового редактора терминала Nano: sudo nano .profile

Это позволит вам ввести start-pg, чтобы запустить службу postgresql, и run-pg, чтобы открыть оболочку psql. Вы можете изменить start-pg и run-pg на любые имена, но будьте осторожны, чтобы не перезаписать команду, которую уже использует postgres!

Добавив новые псевдонимы, выйдите из текстового редактора Nano, нажав Ctrl+X, выберите Y (Да) при появлении запроса на сохранение и Enter (оставив имя файла как .profile ).

Закройте и снова откройте терминал WSL, а затем попробуйте свои новые команды псевдонимов.

Устранение неполадок

Ошибка: синхронизация каталогов fdatasync Недопустимый аргумент

Убедитесь, что ваш дистрибутив Linux работает в режиме WSL 2. Справку по переключению с WSL 1 на WSL 2 см. в статье Установка версии дистрибутива на WSL 1 или WSL 2.

Читайте также: