Yii2 обновление базы данных

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Piter
Сообщения: 24
Зарегистрирован: 2017.02.21, 15:37

Yii2 обновление базы данных

Сообщение Piter »

Обновил базу данных на сервере таким образом, удалил старую и сделал импорт новой из локального сервера.
Теперь при входе в backend, после ввода логин и пароль выходит ошибка:
yii\db\Exception: amnah\yii2\user\models\User does not have a primary key. You should either define a primary key for the corresponding table or override the primaryKey() method. in /var/www/vhosts/infosec.uz/lab.infosec.uz/vendor/yiisoft/yii2/db/BaseActiveRecord.php:1036
А если нажать на любую ссылку, ошибка:
PDOException: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'i' in 'where clause' in /var/www/vhosts/infosec.uz/lab.infosec.uz/vendor/yiisoft/yii2/db/Command.php:837
Next yii\db\Exception: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'i' in 'where clause'
The SQL being executed was: ``SELECT * FROM `user` WHERE `i`=1`` in /var/www/vhosts/infosec.uz/lab.infosec.uz/vendor/yiisoft/yii2/db/Schema.php:628
А после обновления страницы, или нажатия любой ссылки, стоит и не меняется ошибка:
yii\base\InvalidConfigException: "amnah\yii2\user\models\User" must have a primary key. in /var/www/vhosts/infosec.uz/lab.infosec.uz/vendor/yiisoft/yii2/db/ActiveRecord.php:184
Я не пойму почему на локальном открывается, а на глобальном ошибка. Как можно решить проблему?
Аватара пользователя
Alexum
Сообщения: 683
Зарегистрирован: 2016.09.26, 10:00

Re: Yii2 обновление базы данных

Сообщение Alexum »

Вы текст ошибок читали? Слова "does not have a primary key", "Column not found" не намекают, что с вашим импортом базы что-то не так?
Piter
Сообщения: 24
Зарегистрирован: 2017.02.21, 15:37

Re: Yii2 обновление базы данных

Сообщение Piter »

Намекают. Ток я не знаю как проверить. Доступа к БД нет, только файл серверу. А что может быть с БД, у вас предположения есть?
Аватара пользователя
Alexum
Сообщения: 683
Зарегистрирован: 2016.09.26, 10:00

Re: Yii2 обновление базы данных

Сообщение Alexum »

Piter писал(а): 2018.05.31, 09:18 Обновил базу данных на сервере таким образом, удалил старую и сделал импорт новой из локального сервера...
Piter писал(а): 2018.05.31, 09:54 ... Доступа к БД нет, только файл серверу...
Это как вообще?
Piter
Сообщения: 24
Зарегистрирован: 2017.02.21, 15:37

Re: Yii2 обновление базы данных

Сообщение Piter »

Ну.. Тогда был. Сейчас нет.
goodfriend
Сообщения: 50
Зарегистрирован: 2018.06.02, 09:58

Re: Yii2 обновление базы данных

Сообщение goodfriend »

если есть доступ к файлам, вы можете туда phpmyadmin закачать и поглядеть что там с таблицами, может импорт не совсем успешный был, а вы не заметили
Piter
Сообщения: 24
Зарегистрирован: 2017.02.21, 15:37

Re: Yii2 обновление базы данных

Сообщение Piter »

@goodfriend, какой phpmyadmin? и куда закачать?
mkramer
Сообщения: 531
Зарегистрирован: 2014.12.14, 13:02

Re: Yii2 обновление базы данных

Сообщение mkramer »

phpmyadmin - веб-программа для управления базой данных. Если о закачать на сайт для временного доступа к базе, то лучше Adminer - одним файлом ставится, а PMA нехилой настройки требует
Piter
Сообщения: 24
Зарегистрирован: 2017.02.21, 15:37

Re: Yii2 обновление базы данных

Сообщение Piter »

Я настроил Adminer. Юхуу! У меня теперь есть доступ к БД. Но я по прежнему не могу войти в бэкенд. Посмотрел таблицы. Вроде всё тип топ. Не пойму в чем дело..
kawabanga
Сообщения: 806
Зарегистрирован: 2013.10.12, 23:35
Откуда: Новосибирск

Re: Yii2 обновление базы данных

Сообщение kawabanga »

Бесят люди, которые даже не пытаются разобраться в своих ошибках сначала. Какой нахрен типтоп у вас? Если вам прямо написано.

User" must have a primary key. in - у вас есть там Первичный ключ с AI? Если нет, то разберитесь почему нет и создайте.

`SELECT * FROM `user` WHERE `i`=1`` - прям вангую, что в коде случайно букву D забыли. Либо непонятная ахинея с джоинами.

Все элементарно. научитесь хотя бы гуглом пользоваться.
Piter
Сообщения: 24
Зарегистрирован: 2017.02.21, 15:37

Re: Yii2 обновление базы данных

Сообщение Piter »

Здесь никому не интересно что тебя бесит! Мы тут делом заняты. И читать ошибки я умею. Дело в том, что точно такая же копия сайт, стоит на локальном хосте, с точно такой же БД и всё работает. Ошибки в запросе быть не должно потому что это фреймворковский код,да и если была б опечатка, на локалке тоже самое бы выходило. Ничего элементарного не вижу. И гугл весь перелапачен, я б тогда сюда не пришел за помощью!
skynin
Сообщения: 400
Зарегистрирован: 2017.12.12, 10:09

Re: Yii2 обновление базы данных

Сообщение skynin »

Piter писал(а): 2018.06.06, 10:25 с точно такой же БД и всё работает. Ошибки в запросе быть не должно
если бы база была такой же.

А она - не такая же:
Column not found: 1054 Unknown column 'i' in 'where clause'

разберитесь почему она у вас - разная
Piter писал(а): 2018.06.06, 10:25должно потому что это фреймворковский код,да и если была б опечатка, на локалке тоже самое бы выходило
ошибка у вас, а не в фреймворке.

либо - базы разные
либо - код разный.

Unknown column 'i' - Неизвестная колонка i

то есть либо в базе такой нет
либо у вас в коде - ошибка.
код который на локалке или база - получился у вас другой.

а вам сказали старое
компилятор дурак в последнюю очередь. ошибка - у тебя.

фреймворк генерирует запросы на тьме проектов. и элементарную ошибку Unknown column никто не видит

значит ошибка - у вас а не в фреймворке
Piter писал(а): 2018.06.06, 10:25я б тогда сюда не пришел за помощью!
импортируйте правильно базу, деплойте правильно код - и не будет у вас такой ошибки, как нет ее у 99.9% программистов
Unknown column - это очень грубая, явная, и легко находимая ошибка
Не желайте странного, и не будет у вас головной боли чтобы достичь этого странного.
Тем более что окажется что оно вам и не нужно было, странное это.
Piter
Сообщения: 24
Зарегистрирован: 2017.02.21, 15:37

Re: Yii2 обновление базы данных

Сообщение Piter »

а вы может подсказать где этот ```SELECT * FROM `user` WHERE `i`=1``` запрос может формироваться?
skynin
Сообщения: 400
Зарегистрирован: 2017.12.12, 10:09

Re: Yii2 обновление базы данных

Сообщение skynin »

Piter писал(а): 2018.06.06, 10:37 а вы может подсказать где этот ```SELECT * FROM `user` WHERE `i`=1``` запрос может формироваться?
не могу конечно. у меня же нет вашего кода :)

смотрите в отладочной панели, в каком месте ваша актив модель формирует этот запрос
наверняка это User::findOne()
Не желайте странного, и не будет у вас головной боли чтобы достичь этого странного.
Тем более что окажется что оно вам и не нужно было, странное это.
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Yii2 обновление базы данных

Сообщение andku83 »

Piter писал(а): 2018.06.06, 10:37 а вы может подсказать где этот ```SELECT * FROM `user` WHERE `i`=1``` запрос может формироваться?
вы же сами писали в первом сообщении:
Piter писал(а): 2018.05.31, 09:18
... in /var/www/vhosts/infosec.uz/lab.infosec.uz/vendor/yiisoft/yii2/db/BaseActiveRecord.php:1036
goodfriend
Сообщения: 50
Зарегистрирован: 2018.06.02, 09:58

Re: Yii2 обновление базы данных

Сообщение goodfriend »

Piter писал(а): 2018.06.06, 10:37 а вы может подсказать где этот ```SELECT * FROM `user` WHERE `i`=1``` запрос может формироваться?
Если у вас есть ошибка, то можете смотреть ее трейс(идет вместе с ней), там более конкретно чем вот эти сообщения из ядра фреймворка.
Да и вообще смотрите по урлу что у вас за текущий экшен и что там за код (раз ошибка появляется только на этой странице).
Toshus
Сообщения: 14
Зарегистрирован: 2018.06.06, 21:06

Re: Yii2 обновление базы данных

Сообщение Toshus »

Если обновляли структуру БД, причем не миграциями, то стоит сбросить кэш схемы БД. Ну и желательно почистить папки runtime и web/assets после обновления БД и деплоя.
Piter
Сообщения: 24
Зарегистрирован: 2017.02.21, 15:37

Re: Yii2 обновление базы данных

Сообщение Piter »

.
Последний раз редактировалось Piter 2018.06.07, 07:27, всего редактировалось 1 раз.
Piter
Сообщения: 24
Зарегистрирован: 2017.02.21, 15:37

Re: Yii2 обновление базы данных

Сообщение Piter »

andku83 писал(а): 2018.06.06, 14:14
Piter писал(а): 2018.06.06, 10:37 а вы может подсказать где этот ```SELECT * FROM `user` WHERE `i`=1``` запрос может формироваться?
вы же сами писали в первом сообщении:
Piter писал(а): 2018.05.31, 09:18
... in /var/www/vhosts/infosec.uz/lab.infosec.uz/vendor/yiisoft/yii2/db/BaseActiveRecord.php:1036
Это номер строки где исключение выходит. Вот: " throw new Exception(get_class($this) . ' does not have a primary key. You should either define a primary key for the corresponding table or override the primaryKey() method.');"
Piter
Сообщения: 24
Зарегистрирован: 2017.02.21, 15:37

Re: Yii2 обновление базы данных

Сообщение Piter »

goodfriend писал(а): 2018.06.07, 06:31
Piter писал(а): 2018.06.06, 10:37 а вы может подсказать где этот ```SELECT * FROM `user` WHERE `i`=1``` запрос может формироваться?
Если у вас есть ошибка, то можете смотреть ее трейс(идет вместе с ней), там более конкретно чем вот эти сообщения из ядра фреймворка.
Да и вообще смотрите по урлу что у вас за текущий экшен и что там за код (раз ошибка появляется только на этой странице).
Да я бы рад. Только я не знаю как. Я через Sublim Text сижу. А вы как я понял предлагает как в VisulStudio breakpoint-ы поставить. Вы могли бы подсказать как мне по тексту,вместе с ошибкой идти. И ошибка появляется на всех страницах, а не на одной, какую не запустишь везде пишет одно тоже. То есть сперва пишет мол что то с поиском юзера, а потом если обновить или дать какой нибудь запрос "Invalid configuration" и больше не меняется.
Ответить