Я думал, что суммирую некоторые из замечательных ответов, которые у меня были на этот вопрос, вместе со своими мыслями, теперь я прочитал их все:)
Здесь есть две разные проблемы:
- Должен ли я предварительно заполнить базу данных моим специальным пользователем 'admin'? Или приложение должно предоставить способ настройки при первом использовании?
- Как можно предварительно заполнить базу данных данными? Обратите внимание, что это правильный вопрос, независимо от ответа на часть 1: существуют другие сценарии использования для предварительного заполнения, кроме администратора.
Для (1) кажется, что настройка первого пользователя из самого приложения - это совсем немного дополнительной работы, для функциональности, которая по определению практически не используется. Однако он может быть немного более безопасным, поскольку заставляет пользователя устанавливать пароль по своему выбору. Лучшее решение находится между этими двумя крайностями: иметь сценарий (или задачу rake, или что-то еще), чтобы настроить первоначального пользователя. Затем сценарий можно настроить на автоматическое заполнение паролем по умолчанию во время разработки и требовать ввода пароля во время производственной установки / развертывания (если вы хотите не использовать пароль по умолчанию для администратора).
Для (2), по-видимому, существует ряд хороших, правильных решений. Грабельное задание кажется хорошим способом, и есть несколько плагинов, чтобы сделать это еще проще. Просто просмотрите некоторые другие ответы, чтобы увидеть их подробности:)