mcmraak
@mcmraak
php+sql+js+bicycle+crutches

Как динамически создавать SQLite базы в Laravel и использовать их с помощью QB и ORM?

Простите, скорее это похоже на бред но... Если по ходу выполнения я хочу создавать много SQLite баз и в дальнейшем использовать их используя QueryBuilder или ORM в Laravel, как это можно делать?
Т.е. например $basename = 'base1';
Создаю базу: $db = sqlite_open("mypath/$basename.sqlite");
Как подключатся к ней и делать запросы по средствам QueryBuilder или Eloquent ORM?

Направьте пожалуйста куда читать или как гуглить?
  • Вопрос задан
  • 463 просмотра
Решения вопроса 1
mcmraak
@mcmraak Автор вопроса
php+sql+js+bicycle+crutches
Оказалось всё очень просто (потому что Laravel это очень круто!)

Подключаем фасады:
use Config;
use Schema;

Далее в методе:
$db_name = 'mybase';
$bd_path = "../txt/$db_name.sqlite";
        
# Указываем путь и создаём файл базы если его нет
if(!file_exists($bd_path)){
    file_put_contents($bd_path, '');
}
        
# Динамически создаём конфигурацию подключения
Config::set('database.connections.'.$db_name, array(
    'driver' => 'sqlite',
    'database' => $bd_path,
));
        
# Используя созданное подключение создаём таблицы       
Schema::connection($db_name)->create('mytable', function($table)
{
    $table->increments('id');
    $table->string('name');
});


И так далее...
З.Ы. Велосипедистам привет :)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
DJZT
@DJZT
Laravel - code for you
У моделей ты можешь указать какое соединение с БД использовать для запросов. Почитай документацию Eloquent laravel. Но если у тебя возникает такая необходимость - я думаю у тебя с архитектурой что-то не так. Либо ты делаешь крутой сервис :-)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы