Как использовать PostgreSQL с приложением Ruby on Rails в macOS

Вступление

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

В этом руководстве вы создадите среду разработки Ruby on Rails, подключенную к базе данных PostgreSQL на локальной машине macOS. Вы установите и настроите PostgreSQL, а затем протестируете свои настройки, создав приложение Rails, которое использует PostgreSQL в качестве сервера базы данных.

Предпосылки

Этот учебник требует следующего:

  • Один компьютер или виртуальная машина с установленной MacOS, с административным доступом к этой машине и подключением к Интернету. Это руководство было протестировано на macOS 10.14 Mojave.

  • Среда разработки Ruby on Rails установлена ​​на вашем компьютере с macOS. Чтобы настроить это, следуйте нашему руководству на Wow Install Ruby on Rails с помощью rbenv на macOS. В этом руководстве будут использованы версии 2.6.3 Ruby и 5.2.3 Rails; Информацию о последних версиях можно найти на официальных сайтах Ruby и Rails.

Шаг 1 - Установка PostgreSQL

Чтобы настроить Ruby on Rails для создания вашего веб-приложения с PostgreSQL в качестве базы данных, вы сначала установите базу данных на свой компьютер. Хотя есть many способы установки PostgreSQL на macOS, в этом руководстве будет использован менеджер пакетов Homebrew.

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

brew install postgresql

Если вы хотите загрузить определенную версию PostgreSQL, замените + postgresql + в предыдущей команде желаемым пакетом. Вы можете найти доступные пакеты на веб-сайте Homebrew.

Затем включите двоичный файл PostgreSQL в переменную + PATH, чтобы получить доступ к инструментам командной строки PostgreSQL, убедившись, что вместо` ++ `используется номер версии, которую вы используете:

echo 'export PATH="/usr/local/opt/postgresql@/bin:$PATH"' >> ~/.bash_profile

Затем примените изменения, которые вы внесли в файл + ~ / .bash_profile +, к текущей сессии оболочки:

source ~/.bash_profile

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

brew services start postgresql@

Убедитесь, что установка прошла успешно:

postgres -V

Вы получите следующий вывод:

Outputpostgres (PostgreSQL)

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

Шаг 2 - Создание роли базы данных для вашего приложения

В PostgreSQL roles может использоваться для организации разрешений и авторизации. При запуске PostgreSQL с Homebrew автоматически создается роль суперпользователя с вашим именем пользователя macOS. Чтобы сохранить эти привилегии суперпользователя отдельно от экземпляра базы данных, который вы используете для своего приложения Rails, на этом шаге вы создадите новую роль с меньшим доступом.

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

createuser -P -d

В этой команде вы использовали + createuser + для создания роли с именем ++. Флаг + -d + дал роли разрешение на создание новых баз данных.

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

Если вы не использовали флаг + -P + и хотите установить пароль для роли после ее создания, введите консоль PostgreSQL с помощью следующей команды:

psql postgres

Вы получите следующий вывод вместе с подсказкой для консоли PostgreSQL:

Outputpsql ()
Type "help" for help.

postgres=#

Консоль PostgreSQL указывается в приглашении + postgres = # +. В командной строке PostgreSQL введите эту команду, чтобы установить пароль для новой роли базы данных, заменив выделенное имя тем, которое вы создали:

\password

PostgreSQL предложит вам ввести пароль. Введите нужный пароль в командной строке, затем подтвердите его.

Теперь выйдите из консоли PostgreSQL, введя эту команду:

\q

Ваш обычный запрос теперь появится снова.

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

Шаг 3 - Создание нового Rails-приложения

С вашей ролью, настроенной для PostgreSQL, вы можете теперь создать новое приложение Rails, настроенное для использования PostgreSQL в качестве базы данных.

Сначала перейдите в свой домашний каталог:

cd ~

Создайте новое Rails-приложение в этом каталоге, заменив ++ на то, что вы хотели бы назвать своим приложением:

rails new  -d=postgresql

Опция + -d = postgresql + устанавливает PostgreSQL в качестве базы данных.

Как только вы запустите эту команду, в вашем домашнем каталоге появится новая папка с именем ++, содержащая все элементы базового приложения на Rails.

Далее перейдите в каталог приложения:

cd

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

Шаг 4 - Настройка и создание вашей базы данных

При создании баз данных + development и` + test` для вашего приложения Rails будет использовать роль PostgreSQL, созданную вами на шаге 2. Чтобы убедиться, что Rails создает эти базы данных, вы измените файл конфигурации базы данных вашего проекта. Затем вы создадите свои базы данных.

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

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

echo 'export _DATABASE_PASSWORD=""' >> ~/.bash_profile

Эта команда записывает команду + export в ваш файл` + ~ / .bash_profile`, так что переменная окружения будет установлена ​​при входе в систему.

Чтобы экспортировать переменную для текущего сеанса, используйте команду + source +:

source ~/.bash_profile

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

Откройте файл конфигурации базы данных вашего приложения в предпочитаемом вами текстовом редакторе. Этот урок будет использовать + nano +:

nano config/database.yml

В разделе + default + найдите строку с надписью + pool: <% = ENV.fetch (" RAILS_MAX_THREADS ") {5}%> + и добавьте следующие выделенные строки, указав свои учетные данные и переменную среды. Вы создали Это должно выглядеть примерно так:

конфиг / database.yml

...
default: &default
 adapter: postgresql
 encoding: unicode
 # For details on connection pooling, see Rails configuration guide
 # http://guides.rubyonrails.org/configuring.html#database-pooling
 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>



development:
 <<: *default
 database: appname_development
...

Это заставит приложение Rails запускать базу данных с правильной ролью и паролем. Сохраните и выйдите, нажав + CTRL + X +, + Y +, затем + ENTER +.

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

Теперь, когда вы внесли изменения в + config / database.yml +, создайте базы данных вашего приложения с помощью команды + rails +:

rails db:create

Как только Rails создаст базу данных, вы получите следующий вывод:

OutputCreated database '_development'
Created database '_test'

Как показывает вывод, эта команда создает базу данных + development и` + test` на вашем сервере PostgreSQL.

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

Шаг 5 - Тестирование вашей конфигурации

Чтобы проверить, что ваше приложение может использовать базу данных PostgreSQL, попробуйте запустить ваше веб-приложение, чтобы оно отображалось в браузере.

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

rails server --binding=127.0.0.1

+ - binding привязывает ваше приложение к определенному IP. По умолчанию этот флаг привязывает Rails к + 0.0.0.0 +, но, поскольку это означает, что Rails будет прослушивать все интерфейсы, более безопасно использовать + 127.0.0.1 + для указания + localhost +. По умолчанию приложение прослушивает порт + 3000 +.

Как только ваше приложение Rails запустится, ваша командная строка исчезнет, ​​заменившись следующим:

Output=> Booting Puma
=> Rails  application starting in development
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version  (ruby -p62), codename: Llamas in Pajamas
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://127.0.0.1:3000
Use Ctrl-C to stop

Чтобы проверить, работает ли ваше приложение, откройте новое окно терминала на вашем сервере и с помощью команды + curl + отправьте запрос на +127.0.0.1: 3000 +:

curl http://127.0.0.1:3000

Вы получите много выходных данных в формате HTML, оканчивающихся на что-то вроде:

Output...
       <strong>Rails version:</strong><br />
       <strong>Ruby version:</strong>  (x86_64-darwin18)
     </p>
   </section>
 </div>
</body>
</html>

Вы также можете получить доступ к своему приложению Rails в локальном веб-браузере, посетив:

http://127.0.0.1:3000

По этому адресу вы найдете страницу приветствия Ruby on Rails:

изображение: https: //assets.digitalocean.com/articles/cart_66733/Rails_Welcome.png [Страница приветствия Ruby on Rails]

Это означает, что ваше приложение правильно настроено и подключено к базе данных PostgreSQL.

Заключение

В этом руководстве вы создали веб-приложение Ruby on Rails, которое было настроено для использования PostgreSQL в качестве базы данных на локальном компьютере MacOS. Если вы хотите узнать больше о языке программирования Ruby, ознакомьтесь с нашим How To Code в серии Ruby.

Для получения дополнительной информации о выборе базы данных для вашего приложения, ознакомьтесь с нашим руководством по различиям и случаям использования https://www.digitalocean.com/community/tutorials/sqlite-vs-mysql-vs-postgresql-a-comparison -of-реляционных систем управления базами данных [SQLite, PostgreSQL и MySQL]. Если вы хотите узнать больше о том, как использовать базы данных, см. Нашу статью An Введение в запросы в PostgreSQL или изучите https в DigitalOcean: //www.digitalocean.com/products/managed-databases/[Managed Databases product].

Related