Please confirm you have done the following before posting your bug report:
•[Yes] I have enabled debug mode
•[Yes] I have read checked the Common Issues page
Provide answers to these questions:
•Is this a fresh install or an upgrade? Fresh install
•Version of Snipe-IT you’re running — Not sure which version. I installed Git and ran the following command: git clone https://github.com/snipe/snipe-it
•Version of PHP you’re running — 7.2
•Version of MySQL/MariaDB you’re running — MySQL Server 5.7
•What OS and web server you’re running Snipe-IT on — Windows Server 2008 R2 and IIS
•WITH DEBUG TURNED ON, if you’re getting an error in your browser, include that error
•What specific Snipe-IT page you’re on, and what specific element you’re interacting with to trigger the error
We are able to get the pre-flight & setup page to load. However, when we click to go to the next page we get the «whoops, looks like something went wrong» error.
I turned on debug mode and tried again and I get the following error:
(1/3) PDOException
SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name ‘remember_token’
(2/3) PDOException
SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name ‘remember_token’
(3/3) QueryException
SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name ‘remember_token’ (SQL: alter table users add remember_token text null)
•Include what you’ve done so far in the installation, and if you got any error messages along the way. —
I’ve successfully completed all of the steps in the installation steps. Only errors I recall during the installation was when trying to generate the app key. I forget what the exact error message is now but from doing some Googling I was able to mitigate the error by disabling the below 2 lines in my php.ini file.
- ;extension=php_pdo_oci.dll
- ;extension=php_pdo_firebird.dll
•Indicate whether or not you’ve manually edited any data directly in the database — No I have not
I have done lots of google searches and have found things that are very similar but haven’t found anyone with this exact error. Any help would be greatly appreciated.
Snipe-IT_Errors.txt
#1 30.03.2017 06:46:14
Ошибка SQLSTATE[42S21]
Формирую миграцию по изменению таблицы
php artisan make:migration ChangeArticlesTable —table=articles
Миграция происходит успешно.
Далее открываю файл миграции, вношу записи по формировании связи с другой таблицей
$table->integer(‘user_id’)->unsigned()->default(1);
$table->foreign(‘user_id’)->references(‘id’)->on(‘users’);
$table->integer(‘category_id’)->unsigned()->default(1);
$table->foreign(‘category_id’)->references(‘id’)->on(‘categories’);
Дальше необходимо внести изменения командой
php artisan migrate
Но изменения не вносятся, появляется сообщение об ошибке:
[IlluminateDATABASEQueryException]
SQLSTATE[42S21]: COLUMN already EXISTS: 1060 Duplicate COLUMN name ‘user_id’
(SQL: ALTER TABLE ‘articles’ ADD ‘user_id’ INT UNSIGNED NOT NULL DEFAULT ‘1’, ADD ‘catego ry_id’ INT UNSIGNED NOT NULL DEFAULT ’l’)
[PDOException]
SQLSTATE[42S21]: COLUMN already EXISTS: I960 Duplicate COLUMN name ’user_id’
В чем тут может быть проблема? Конечно, колонки у меня уже есть, но мне нужно выстроить взаимосвязи между таблицами.
#2 30.03.2017 07:45:50
Re: Ошибка SQLSTATE[42S21]
почему связи вообще в миграции-то? туда только колонки добавляются, а связи – в моделях. только если внешние ключи добавить, но если сайт не в продакшене, тогда проще добавить их в ту миграцию где таблица создаётся и заново пересоздать базу. и ещё если не нужны каскадные эффекты, тогда внешние ключи вообще не нужны
#3 30.03.2017 08:20:10
Re: Ошибка SQLSTATE[42S21]
constb пишет:
почему связи вообще в миграции-то? туда только колонки добавляются, а связи – в моделях. только если внешние ключи добавить, но если сайт не в продакшене, тогда проще добавить их в ту миграцию где таблица создаётся и заново пересоздать базу. и ещё если не нужны каскадные эффекты, тогда внешние ключи вообще не нужны
Благодарю! Правильно поправил меня, мне действительно нужно установить внешние ключи. Но тот алгоритм по внешним ключам который я делаю должен выполняться, но где-то ошибка. У меня вначале вообще не устанавливались таблицы, установил только когда перешел mySQL на 5.7-64. Не знаю, может быть есть какой то другой алгоритм действий есть по установлению внешних ключей.
#4 30.03.2017 10:09:57
-
skiphog
- Откуда: Киров, Россия
- Сообщений: 26
Re: Ошибка SQLSTATE[42S21]
SZV пишет:
… У меня вначале вообще не устанавливались таблицы, установил только когда перешел mySQL на 5.7-64
Документация https://laravel.com/docs/5.4/migrations#indexes
Laravel 5.4 по умолчанию использует кодировку utf8mb4, которая включает в себя поддержку смайлов «emoji»
Если вы хотите использовать mysql 5.6, то можно в AppServiceProvider => boot добавить Schema::defaultStringLength(191);
либо пойти в config => database и в настройках mysql сменить кодировку utf8mb4 на utf8 и collation на utf8_unicode_ci, но тогда поддержки «emoji» не будет…
Теперь, что касается миграции…
Мускул же вам понятно написал причину ошибки.
Вы пытаетесь добавить столбец, который уже существует в таблице.
Вы уже создавали этот столбец в предыдущей миграции, верно? Если вы действительно хотите его изменить, то добавьте ->change()
$table->integer(‘user_id’)->unsigned()->default(1)->change();
*должен быть установлен doctrine/dbal
—
Если вам не нужно менять столбец, а нужно только связать ключи, то эту строку вообще удалите, но учтите, что для связывания user_id должен быть unsigned, иначе опять выскочит ошибка.
#5 30.03.2017 12:25:03
Re: Ошибка SQLSTATE[42S21]
skiphog пишет:
SZV пишет:
… У меня вначале вообще не устанавливались таблицы, установил только когда перешел mySQL на 5.7-64
Документация https://laravel.com/docs/5.4/migrations#indexes
Laravel 5.4 по умолчанию использует кодировку utf8mb4, которая включает в себя поддержку смайлов «emoji»
Если вы хотите использовать mysql 5.6, то можно в AppServiceProvider => boot добавить Schema::defaultStringLength(191);
либо пойти в config => database и в настройках mysql сменить кодировку utf8mb4 на utf8 и collation на utf8_unicode_ci, но тогда поддержки «emoji» не будет…Теперь, что касается миграции…
Мускул же вам понятно написал причину ошибки.
Вы пытаетесь добавить столбец, который уже существует в таблице.
Вы уже создавали этот столбец в предыдущей миграции, верно? Если вы действительно хотите его изменить, то добавьте ->change()$table->integer(‘user_id’)->unsigned()->default(1)->change();
*должен быть установлен doctrine/dbal
—
Если вам не нужно менять столбец, а нужно только связать ключи, то эту строку вообще удалите, но учтите, что для связывания user_id должен быть unsigned, иначе опять выскочит ошибка.
Вы правы. Добавил ->change(). Немного продвминулся в решении проблемы, но вышла другая ошибка
«[RuntimeException]
Changing columns for table «articles» requires Doctrine DBAL; install «doctrine/dba 1″.»
Т.е. то о чем Вы пишите. Добавить doctrine/dba 1.
Смею спросить а как правильно установить этот doctrine/dba 1.
Нашел:
«Если вы используете функцию renameColumn в ваших миграциях, то вам надо будет добавить зависимость doctrine/dbal в ваш файл composer.json. Этот пакет больше не входит в Laravel по умолчанию.»
Где находится файл composer.json. что за зависимость необходимо добавить? Я так понимаю, что по умолчанию в Laravel сейчас нет doctrine/dba. Может быть внешние ключи можно установить неким более простым способом? Или все таки установить doctrine, но опять же как?
#6 30.03.2017 14:09:35
Re: Ошибка SQLSTATE[42S21]
ещё раз – если не используешь каскадные эффекты, внешние ключи в mysql добавлять не нужно. связи моделей не используют foreign keys никак вообще, и от их наличия или отсутствия не зависят. внешние ключи нужны только в связке с on cascade delete, on cascade update и on cascade set null.
composer.json находится в корне проекта, doctrine/dbal – это не доктрина, это только её DataBase Abstraction Layer, устанавливается командой composer require doctrine/dbal в корне проекта, нужна только для сложных миграций, то есть не всем и не всегда – потому в стандартную установку и не входит
#7 30.03.2017 14:33:57
-
skiphog
- Откуда: Киров, Россия
- Сообщений: 26
Re: Ошибка SQLSTATE[42S21]
SZV пишет:
Может быть внешние ключи можно установить неким более простым способом?
Судя по «mySQL 5.7-64» у вас установлен OpenServer? Там есть PhpMyadmin.
Зайдите туда, выберите вашу БД и выполните запрос
Для юзеров
alter table articles add foreign key articles_user_id_foreign (user_id) references users(id)
И для категорий
alter table articles add foreign key articles_category_id_foreign (category_id) references categories(id)
Ну и да. Вам уже написали
constb пишет:
…внешние ключи нужны только в связке с on cascade delete, on cascade update и on cascade set null
#8 30.03.2017 16:21:51
Re: Ошибка SQLSTATE[42S21]
skiphog пишет:
SZV пишет:
Может быть внешние ключи можно установить неким более простым способом?
Судя по «mySQL 5.7-64» у вас установлен OpenServer? Там есть PhpMyadmin.
Зайдите туда, выберите вашу БД и выполните запрос
Для юзеровalter table articles add foreign key articles_user_id_foreign (user_id) references users(id)
И для категорий
alter table articles add foreign key articles_category_id_foreign (category_id) references categories(id)
Ну и да. Вам уже написали
constb пишет:
…внешние ключи нужны только в связке с on cascade delete, on cascade update и on cascade set null
Благодарю. К таблице articles в индексах прописалась строка articles_user_id_foreign, но по прежнему нет строки articles_category_id_foreign.
Блин, а есть более простой способ подключения внешних ключей к готовым таблицам?
#9 31.03.2017 04:44:24
Re: Ошибка SQLSTATE[42S21]
SZV, по-моему ты просто не понимаешь что такое внешний ключ в реляционных СУБД. это не поле, а ограничение (constraint). естественно у тебя никакой строки ниоткуда не появится. я третий и последний раз скажу это – тебе не нужен здесь foreign key
ERROR 1060 (42S21): Duplicate column name ‘info’
The middle of last Dec., I found that my CQRlog did not export , or etc to adif.(Also Ubuntu 18.04.3)
I decide to install Ubuntu 18.04.3 into an another SSD.
On the new SSD, I installed CQRlog 2.4.0.1 deb.
Now in the QSOlist, I have lost «Comment to QSO» column.
And when I search by DXCC, I input e.x. 5B, the error occurred.
TMySQL57Connection: Error executing query: Unknown column ‘dxcc_ref’ in ‘where clause’.
Then I tried according to https://www.cqrlog.com/node/2340
——————
$ mysql -S ~/.config/cqrlog/database/sock
Welcome to the MariaDB monitor. Commands end with ; or g.
Your MariaDB connection id is 8
Server version: 10.1.43-MariaDB-0ubuntu0.18.04.1 Ubuntu 18.04
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the current input statement.
MariaDB [(none)]> use cqrlog001;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [cqrlog001]> alter table freqmem add info varchar(25) null;
ERROR 1060 (42S21): Duplicate column name ‘info’
MariaDB [cqrlog001]>
———————
How must I coorect «Duplicate column name ‘info'» ?
Former SSD has in /home/NAME/.config/cqrlog/database/mysql.err:
2019-12-30T02:08:59.668280Z 0 [Warning] Can’t open and lock time zone table: Table ‘mysql.time_zone_leap_second’ doesn’t exist trying to live without them
2019-12-30T02:08:59.668321Z 0 [ERROR] Can’t open and lock privilege tables: Table ‘mysql.servers’ doesn’t exist
Автор | Сообщение | ||
---|---|---|---|
Заголовок сообщения: mysql import error Добавлено: 23 мар 2015, 12:25 |
|||
|
Добрый день! bgcrm_3.0_1152.zip Код: mysql —default-character-set=utf8 -uroot < /tmp/bgcrm.sql При загрузке дампа вылезают ошибки: Код: mysql —default-character-set=utf8 -uroot -p -f <bgcrm.sql _________________ Код: Клиент: вер. 6.2.874 / 05.02.2018 12:48:36 |
||
Вернуться к началу |
|
||
vkulakov |
Заголовок сообщения: Re: mysql import error Добавлено: 23 мар 2015, 12:27 |
||
|
Недавно тоже с этим столкнулся: viewtopic.php?f=51&t=10252 _________________ |
||
Вернуться к началу |
|
||
stark |
Заголовок сообщения: Re: mysql import error Добавлено: 23 мар 2015, 12:58 |
||
|
Сделайте так Код: mysql —default-character-set=utf8 -f -uroot < /tmp/bgcrm.sql В ближайшее время постараемся это исправить. |
||
Вернуться к началу |
|
||
borin |
Заголовок сообщения: Re: mysql import error Добавлено: 23 мар 2015, 13:00 |
|
stark писал(а): Сделайте так Код: mysql —default-character-set=utf8 -f -uroot < /tmp/bgcrm.sql В ближайшее время постараемся это исправить. Так и сделал, просто интересно было, можно ли пропускать ошибки _________________ Код: Клиент: вер. 6.2.874 / 05.02.2018 12:48:36 |
Вернуться к началу |
|
Администратор |
Заголовок сообщения: Re: mysql import error Добавлено: 21 июн 2015, 17:01 |
||
|
В последнем обновлении это исправлено. Изменение структуры производится с помощью хранимых процедур с предварительной проверкой наличия поля, индекса. |
||
Вернуться к началу |
|
||