Переход на PostgreSQL и Ruby on Rails на Ubuntu 24.04: опыт разработчика

Обновлено: 27 августа, 2024

После обширного исследования оптимальных баз данных для разработки на Ruby on Rails, я в конечном итоге выбрал PostgreSQL, во многом благодаря предпочтениям моего инструктора в YouTube-уроке. Переход от SQLite к PostgreSQL оказался весьма полезным опытом. Следуя различным руководствам, я обнаружил, что процесс интеграции с фреймворком Ruby on Rails был удивительно гладким — до тех пор, пока я не начал обновлять свой ПК и переустанавливать Ubuntu Linux.

Переустановка Ubuntu и настройка окружения

Предыстория этого начинания включала предыдущую установку Ubuntu на раздел с ограниченным пространством. В стремлении оптимизировать свою настройку, я искал способы расширить размер раздела, используя свободное место на диске, который также содержал ОС Windows на отдельном разделе. После экспериментов с различными методами монтирования и размонтирования, я в конце концов нашел способ увеличить раздел /root. Однако после тщательного рассмотрения я пришел к выводу, что свежая установка Ubuntu 24.04 будет наиболее эффективным решением. Этот подход позволил бы мне выделить все 500 ГБ пространства для Ubuntu, что соответствует инсайтам DHH о принятии инструментов разработки с открытым исходным кодом и отказе от систем Mac и Windows.

С важными данными, сохраненными в резервной копии, и подготовленным живым USB-диском, я был готов преобразовать свой ПК в исключительную среду для разработки программного обеспечения. Процесс переустановки начался без промедления. По завершении я с нетерпением открыл терминал и выполнил wget -qO- https://omakub.org/install | bash, чтобы установить Omakub Ubuntu setup. Этот универсальный набор программного обеспечения для разработчиков занял некоторое время для установки, но я воздержался от углубления в его тонкости, пообещав поделиться своими мыслями позже.

После установки Omakub мой ПК был обновлен, оснащен стильным интерфейсом и необходимыми инструментами, такими как Ruby, Python, Node, Docker, VS Code, Neovim и другими. Фреймворк Rails также был включен в эту единственную команду, что стало моментом чистого удовлетворения. Затем я подключил внешний диск для восстановления всех своих резервных данных, включая тестовые проекты.

Проблемы с подключением к базе данных PostgreSQL

С установкой всего необходимого я перешел в каталог своего проекта в терминале, запустил сервер с помощью rails server и перешел по ссылке на localhost. К моему разочарованию, я столкнулся с ошибками ActiveRecord, а именно сообщением «не удается подключиться к базе данных на порту 5432». Несмотря на мой новичковый статус, я всегда полагался на настройки по умолчанию для своей базы данных во время разработки. Решив решить проблему, я изучил онлайн-ресурсы, проконсультировался с Stack Overflow, исследовал сообщества Ubuntu и провел множество поисков в Google, но проблема оставалась нерешенной. Попытки исправить ситуацию с помощью различных команд sudo оказались безуспешными. Я даже удалил и переустановил PostgreSQL, но безрезультатно.

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

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

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

Опубликовано: 27 августа, 2024

ЕЩЕ СТАТЬИ ПО ДАННОЙ ТЕМЕ

Поддержка Postgre SQL

Поддержка — это когда у вас возникает техническая
проблема с существующей системой,
и вам необходимо некоторое руководство