Программное создание базы данных MySQL во время выполнения - PullRequest
2 голосов
/ 04 ноября 2010

Есть ли способ в Rails / AR создать новую базу данных mysql во время выполнения?

Ответы [ 2 ]

2 голосов
/ 04 ноября 2010

Я рекомендую подготовить автономный скрипт, доступный для чтения только указанному пользователю, и выполнить его с рельсов с помощью команды system с именем db в качестве параметра

1 голос
/ 05 ноября 2010

Быстрый и грязный ответ:

  1. Убедитесь, что пользователь MySQL, к которому подключается ваше приложение, имеет право создавать базы данных.

  2. Создание базы данных с помощью оператора SQL:

    ActiveRecord :: Base.connection.execute ('СОЗДАЙТЕ БАЗУ ДАННЫХ ЕСЛИ НЕ СУЩЕСТВУЕТ new_database');

Для простоты я бы предложил даже не использовать ActiveRecord для этого. AR действительно предназначен для работы с предварительно сконфигурированными базами данных, и, хотя вы можете создавать базы данных, где вы действительно столкнетесь с проблемами, вы пытаетесь подключиться к этим БД и использовать их на лету.

Возможно, вам лучше использовать гем Myql2 Брайана Лопеса (в дополнение к AR для основной базы данных вашего приложения):

https://github.com/brianmario/mysql2

В дополнение к тому, что он довольно быстрый и современный, с его API намного проще работать, чем с сырой библиотекой mysql (которую AR использует под капотом, включая connection.execute).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...