В настоящее время я работаю над удалением устаревших столбцов из моей базы данных. После удаления определенного столбца я столкнулся со следующей ошибкой:
SQLSTATE[42S22]: Столбец не найден: 1054 Неизвестный столбец
'table.my_column ' в 'списке полей'' в
/var/www/wap/vendor/cakephp/cakephp/src/Database/Statement/MysqlStatement.php:37
Ошибка возникает в этой строке кода:
$info = $this->Infos->find("InfoContact",["gid" => $info_id])->first();
Он использует Cake\ORM\Query, а объект InfoContact не содержит никаких ссылок на удаленный столбец.
Я попробовал поискать по всему коду (используя Ctrl+Shift+F) имя удаленного столбца, но не нашел явных ссылок на него. Учитывая это, я думаю, что проблема может быть связана с кэшированием схемы в CakePHP. Однако я не совсем уверен, действительно ли кэширование является основной причиной — на данный момент это всего лишь гипотеза.
В этом проекте настроено кэширование схемы, но я попробовал изменить ' cacheMetadata» установить значение false и добавить управление версиями к префиксу cake_model, но ошибка сохраняется.
Кроме того, у меня есть cakephp/migrations в композиторе.json, но в нем нет файлов, расширяющих AbstractMigration
Вот как кеширование настроено в файле app.php:
'Cache' => [
'default' => [
'className' => FileEngine::class,
'path' => CACHE,
'url' => env('CACHE_DEFAULT_URL', null),
],
/**
* Configure the cache used for general framework caching.
* Translation cache files are stored with this configuration.
* Duration will be set to '+2 minutes' in bootstrap.php when debug = true
* If you set 'className' => 'Null' core cache will be disabled.
*/
'_cake_core_' => [
'className' => FileEngine::class,
'prefix' => 'myapp_cake_core_',
'path' => CACHE . 'persistent/',
'serialize' => true,
'duration' => '+1 years',
'url' => env('CACHE_CAKECORE_URL', null),
],
/**
* Configure the cache for model and datasource caches. This cache
* configuration is used to store schema descriptions, and table listings
* in connections.
* Duration will be set to '+2 minutes' in bootstrap.php when debug = true
*/
'_cake_model_' => [
'className' => FileEngine::class,
'prefix' => 'myapp_cake_model_',
'path' => CACHE . 'models/',
'serialize' => true,
'duration' => '+1 years',
'url' => env('CACHE_CAKEMODEL_URL', null),
],
/**
* Configure the cache for routes. The cached routes collection is built the
* first time the routes are processed through config/routes.php.
* Duration will be set to '+2 seconds' in bootstrap.php when debug = true
*/
'_cake_routes_' => [
'className' => FileEngine::class,
'prefix' => 'myapp_cake_routes_',
'path' => CACHE,
'serialize' => true,
'duration' => '+1 years',
'url' => env('CACHE_CAKEROUTES_URL', null),
],
'shortterm' => [
'className' => FileEngine::class,
'prefix' => 'myapp_short_',
'path' => CACHE . 'views' . DS,
'serialize' => true,
'duration' => '+5 minutes'
]
'Datasources' => [
'default' => [
'className' => Connection::class,
'driver' => Mysql::class,
'persistent' => false,
'timezone' => env('APP_DEFAULT_TIMEZONE', 'UTC'),
'flags' => [],
'cacheMetadata' => true,
'log' => false,
'quoteIdentifiers' => true,
'url' => env('DATABASE_URL', null),
],
]
Подробнее здесь: https://stackoverflow.com/questions/791 ... data-table
Исключение PDO Неизвестный столбец при удалении столбца из таблицы данных ⇐ Php
Кемеровские программисты php общаются здесь
1731421520
Anonymous
В настоящее время я работаю над удалением устаревших столбцов из моей базы данных. После удаления определенного столбца я столкнулся со следующей ошибкой:
SQLSTATE[42S22]: Столбец не найден: 1054 Неизвестный столбец
'table.my_column ' в 'списке полей'' в
/var/www/wap/vendor/cakephp/cakephp/src/Database/Statement/MysqlStatement.php:37
Ошибка возникает в этой строке кода:
$info = $this->Infos->find("InfoContact",["gid" => $info_id])->first();
Он использует Cake\ORM\Query, а объект InfoContact не содержит никаких ссылок на удаленный столбец.
Я попробовал поискать по всему коду (используя Ctrl+Shift+F) имя удаленного столбца, но не нашел явных ссылок на него. Учитывая это, я думаю, что проблема может быть связана с кэшированием схемы в CakePHP. Однако я не совсем уверен, действительно ли кэширование является основной причиной — на данный момент это всего лишь гипотеза.
В этом проекте настроено кэширование схемы, но я попробовал изменить ' cacheMetadata» установить значение false и добавить управление версиями к префиксу cake_model, но ошибка сохраняется.
Кроме того, у меня есть cakephp/migrations в композиторе.json, но в нем нет файлов, расширяющих AbstractMigration
Вот как кеширование настроено в файле [b]app.php[/b]:
'Cache' => [
'default' => [
'className' => FileEngine::class,
'path' => CACHE,
'url' => env('CACHE_DEFAULT_URL', null),
],
/**
* Configure the cache used for general framework caching.
* Translation cache files are stored with this configuration.
* Duration will be set to '+2 minutes' in bootstrap.php when debug = true
* If you set 'className' => 'Null' core cache will be disabled.
*/
'_cake_core_' => [
'className' => FileEngine::class,
'prefix' => 'myapp_cake_core_',
'path' => CACHE . 'persistent/',
'serialize' => true,
'duration' => '+1 years',
'url' => env('CACHE_CAKECORE_URL', null),
],
/**
* Configure the cache for model and datasource caches. This cache
* configuration is used to store schema descriptions, and table listings
* in connections.
* Duration will be set to '+2 minutes' in bootstrap.php when debug = true
*/
'_cake_model_' => [
'className' => FileEngine::class,
'prefix' => 'myapp_cake_model_',
'path' => CACHE . 'models/',
'serialize' => true,
'duration' => '+1 years',
'url' => env('CACHE_CAKEMODEL_URL', null),
],
/**
* Configure the cache for routes. The cached routes collection is built the
* first time the routes are processed through config/routes.php.
* Duration will be set to '+2 seconds' in bootstrap.php when debug = true
*/
'_cake_routes_' => [
'className' => FileEngine::class,
'prefix' => 'myapp_cake_routes_',
'path' => CACHE,
'serialize' => true,
'duration' => '+1 years',
'url' => env('CACHE_CAKEROUTES_URL', null),
],
'shortterm' => [
'className' => FileEngine::class,
'prefix' => 'myapp_short_',
'path' => CACHE . 'views' . DS,
'serialize' => true,
'duration' => '+5 minutes'
]
'Datasources' => [
'default' => [
'className' => Connection::class,
'driver' => Mysql::class,
'persistent' => false,
'timezone' => env('APP_DEFAULT_TIMEZONE', 'UTC'),
'flags' => [],
'cacheMetadata' => true,
'log' => false,
'quoteIdentifiers' => true,
'url' => env('DATABASE_URL', null),
],
]
Подробнее здесь: [url]https://stackoverflow.com/questions/79181508/pdo-exception-unknown-column-when-removing-column-from-data-table[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия