Не могу применить миграцию

275
29 июня 2018, 11:00

помогите пожалуйста разобраться, при применении миграции php yii migrate/to m180606_092852_add_secret_key_in_user_table выходит ошибка:

add column secret_key Schema::TYPE_STRING to table pref_user ...Exception 'yii\db\Exception' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Schema::TYPE_STRING' at line 1
The SQL being executed was: ALTER TABLE `pref_user` ADD `secret_key` Schema::TYPE_STRING'
in /var/www/u0498223/public_html/coinfactory.pw/vendor/yiisoft/yii2/db/Schema.php:664
Error Info:
Array
(
[0] => 42000
[1] => 1064
[2] => You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Schema::TYPE_STRING' at line 1
)
Stack trace:
#0 /var/www/u0498223/public_html/coinfactory.pw/vendor/yiisoft/yii2/db/Command.php(1263): yii\db\Schema->convertException(Object(PDOException), 'ALTER TABLE `pr...')
#1 /var/www/u0498223/public_html/coinfactory.pw/vendor/yiisoft/yii2/db/Command.php(1075): yii\db\Command->internalExecute('ALTER TABLE `pr...')
#2 /var/www/u0498223/public_html/coinfactory.pw/vendor/yiisoft/yii2/db/Migration.php(377): yii\db\Command->execute()
#3 /var/www/u0498223/public_html/coinfactory.pw/migrations/m180606_092852_add_secret_key_in_user_table.php(16): yii\db\Migration->addColumn('pref_user', 'secret_key', 'Schema::TYPE_ST...')
#4 /var/www/u0498223/public_html/coinfactory.pw/vendor/yiisoft/yii2/console/controllers/BaseMigrateController.php(725): m180606_092852_add_secret_key_in_user_table->up()
#5 /var/www/u0498223/public_html/coinfactory.pw/vendor/yiisoft/yii2/console/controllers/BaseMigrateController.php(199): yii\console\controllers\BaseMigrateController->migrateUp('m180606_092852_...')
#6 /var/www/u0498223/public_html/coinfactory.pw/vendor/yiisoft/yii2/console/controllers/BaseMigrateController.php(845): yii\console\controllers\BaseMigrateController->actionUp(1)
#7 /var/www/u0498223/public_html/coinfactory.pw/vendor/yiisoft/yii2/console/controllers/BaseMigrateController.php(369): yii\console\controllers\BaseMigrateController->migrateToVersion('m180606_092852')
#8 [internal function]: yii\console\controllers\BaseMigrateController->actionTo('m180606_092852_...')
#9 /var/www/u0498223/public_html/coinfactory.pw/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array(Array, Array)
#10 /var/www/u0498223/public_html/coinfactory.pw/vendor/yiisoft/yii2/base/Controller.php(157): yii\base\InlineAction->runWithParams(Array)
#11 /var/www/u0498223/public_html/coinfactory.pw/vendor/yiisoft/yii2/console/Controller.php(148): yii\base\Controller->runAction('to', Array)
#12 /var/www/u0498223/public_html/coinfactory.pw/vendor/yiisoft/yii2/base/Module.php(528): yii\console\Controller->runAction('to', Array)
#13 /var/www/u0498223/public_html/coinfactory.pw/vendor/yiisoft/yii2/console/Application.php(180): yii\base\Module->runAction('migrate/to', Array)
#14 /var/www/u0498223/public_html/coinfactory.pw/vendor/yiisoft/yii2/console/Application.php(147): yii\console\Application->runAction('migrate/to', Array)
#15 /var/www/u0498223/public_html/coinfactory.pw/vendor/yiisoft/yii2/base/Application.php(386): yii\console\Application->handleRequest(Object(yii\console\Request))
#16 /var/www/u0498223/public_html/coinfactory.pw/yii(20): yii\base\Application->run()
#17 {main}

Я добавила в таблицу user колонку secret_key таким образом:

<?php
use yii\db\Migration;
use yii\db\Schema;
class m180606_092852_add_secret_key_in_user_table extends Migration
{
    // Use up()/down() to run migration code without a transaction.
    public function up()
    {
        $this->addColumn('{{%user}}', 'secret_key', 'Schema::TYPE_STRING');
    }
    public function down()
    {
        $this->dropColumn('{{%user}}', 'secret_key');
    }
}
Answer 1

Вопрос решён! Нужно было убрать кавычки в классе Schema. Результат:

<?php
use yii\db\Migration;
use yii\db\Schema;
class m180606_092852_add_secret_key_in_user_table extends Migration
{
    // Use up()/down() to run migration code without a transaction.
    public function up()
    {
        $this->addColumn('{{%user}}', 'secret_key', Schema::TYPE_STRING);
    }
    public function down()
    {
        $this->dropColumn('{{%user}}', 'secret_key');
    }
}
READ ALSO
Как подключить composer

Как подключить composer

Я скопировал сайт с одного сервера на другой простым копированием (сайт на yii2)В проекте есть composer

265
Запуск bitcoind в Windows и подключение по rpc?

Запуск bitcoind в Windows и подключение по rpc?

Ранее в своём вопросе я выяснил что мне нужен bitcoindПрочитав вики я скачал Bitcoin Core

373
Как создать кнопку, которая при клике будет менять фон на определённую картинку?

Как создать кнопку, которая при клике будет менять фон на определённую картинку?

Есть код на php,мне нужно,чтобы при клике на кнопку, картинка основного фона менялась на другую конкретную картинку

266