Поблема с мирграциями на sqlite

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Noobie
Сообщения: 29
Зарегистрирован: 2014.06.03, 13:38

Поблема с мирграциями на sqlite

Сообщение Noobie » 2015.05.10, 04:57

Сижу осваиваю миграции.
Если использую MySQL то все работает нормально.
При попытке выполнить те же комманды на sqlite выдает ошибку
Exception 'yii\db\Exception' with message 'SQLSTATE[HY000] [14] unable to open database file'
при этом фронт работает нормально и на mysql, и на sqlite.

код миграции:

Код: Выделить всё

<?php

use yii\db\Schema;
use yii\db\Migration;

class m150510_012706_create_testmigr_table extends Migration
{
    public function up()
    {
        $this->createTable('testmigr', [
            'id'    =>  'pk',
            'val1'  =>  'string',
            'val2'  =>  'text',
            'val3'  =>  'text',
        ]);
    }

    public function down()
    {
        $this->dropTable('testmigr');
    }
    
    /*
    // Use safeUp/safeDown to run migration code within a transaction
    public function safeUp()
    {
    }
    
    public function safeDown()
    {
    }
    */
}
код конфига дб:

Код: Выделить всё

<?
return [
    'class' => 'yii\db\Connection',
    'dsn'=>'sqlite:system/data/database.sqlite',
    'charset' => 'utf8',
    'tablePrefix' => 'tbl_'
];
Куда копать?
ПО началу на Mysql тоже выдавал ошибку, вылечил прописывание порта в строку dsn, как лечить на sqlite, ума не приложу

Noobie
Сообщения: 29
Зарегистрирован: 2014.06.03, 13:38

Re: Поблема с мирграциями на sqlite

Сообщение Noobie » 2015.05.10, 05:14

Уже сам вылечил =)
помогло прописывание в dsn полного абсолютного пути к бд файлу, но ведь не должно же так быть

arogachev
Сообщения: 52
Зарегистрирован: 2014.09.09, 14:32

Re: Поблема с мирграциями на sqlite

Сообщение arogachev » 2015.05.10, 19:54

Насколько помню, путь нужно полный, поэтому это нормально. Можете указать через Yii::getAlias() для удобства.
Мой профиль на Github

Noobie
Сообщения: 29
Зарегистрирован: 2014.06.03, 13:38

Re: Поблема с мирграциями на sqlite

Сообщение Noobie » 2015.05.11, 04:49

Чтобы не плодить кучу тем, спрошу здесь.
Допустим есть у меня некий модуль, в нем лежат необходимые для него миграции.
Я устанавливаю этот модуль через composer, но при выполнении yii migrate будут ведь искаться и выполняться миграции из папки system/migrations.
Это надо установить модуль, а потом в ручную перетаскивать миграции в system/migrations? Или можно как-то автоматизировать чтобы миграции сразу падали в нужную папку?

unclead
Сообщения: 160
Зарегистрирован: 2015.03.13, 19:44

Re: Поблема с мирграциями на sqlite

Сообщение unclead » 2015.05.11, 05:37

все есть в документации.
For example, if we want to migrate a forum module whose migration files are located within the module's migrations directory, we can use the following command:

# migrate the migrations in a forum module non-interactively
yii migrate --migrationPath=@app/modules/forum/migrations --interactive=0
автоматически искать миграции в модулях yii из коробки не умеет.
Я для этих целей расширил команду миграции и она ищет миграции во всех подключенных в приложении модулях.

Noobie
Сообщения: 29
Зарегистрирован: 2014.06.03, 13:38

Re: Поблема с мирграциями на sqlite

Сообщение Noobie » 2015.05.11, 06:30

unclead
То что надо. Спасибо :!:

Ответить