Файл базы данных по пути `/var/www/sites/website.com/database/database.sqlite` не существует, но запуск `php artisanmigrLinux

Ответить Пред. темаСлед. тема
Anonymous
 Файл базы данных по пути `/var/www/sites/website.com/database/database.sqlite` не существует, но запуск `php artisanmigr

Сообщение Anonymous »

Предположим, у меня есть приложение Laravel 11, работающее на сайте www.website.com, которое размещено на компьютере с Linux. У приложения плохое время отклика, поскольку ему приходится получать данные из трех баз данных, прежде чем оно сможет вернуть ответ пользователю. Поэтому я подумал, что было бы неплохо разместить базу данных SQLite на www.website.com для кэширования результатов операций с интенсивным чтением, чтобы приложение могло немедленно предоставлять результаты пользователю (я рассматривал Redis и Memched, но решил работать с SQLite, так как уже был с ним знаком). Эта концепция работала на моем локальном компьютере, поэтому я отправил ее на сервер разработки для дальнейшего тестирования, прежде чем отправить ее в рабочую среду и начать ее настройку.
Процесс настройки состоял из следующих шагов:
  • Раньше я случайно удалил файл data.sqlite в каталоге базы данных, поэтому заменил его новым data.sqlite< /code> и запустил для него chmod 776. Этот файл хранится в каталоге базы данных в конфигурации каталога Laravel по умолчанию. Я прекрасно понимаю, что открывать такие разрешения — плохая идея, но поскольку это сервер разработки, где во время тестирования что-то обычно ломается, все в порядке. Я планировал изменить его разрешения, прежде чем отправлять его в производство.
  • Я также предоставил каталогу базы данных разрешения chmod 776.
  • .env был настроен соответствующим образом, и я установил путь к файлу sqlite как /var/www/sites/website.com/database/database.sqlite.
    < li>Я выполнил миграцию с помощью php artisan мигрировать. Никаких проблем. При миграции использовалась таблица кэша Laravel по умолчанию.
Однако попытка открыть веб-сайт не удалась и выдала ошибку 500 Internal Server Error. После проверки журналов выяснилось, что приложение не может найти местоположение базы данных/database.sqlite. Что меня смутило, так это то, что миграция на шаге 4 прошла нормально и без проблем, поэтому приложение могло найти местоположение базы данных. Более того, проверив конфигурацию в config/database.php, я не обнаружил никаких проблем.
Вот соответствующий файл .env и config/database.php. разделы кода соответственно. Они могут быть полезны при отладке.

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

DB_CONNECTION=sqlite_cache
DB_DATABASE=/var/www/sites/website.com/database/database.sqlite
CACHE_STORE=database
DB_CACHE_CONNECTION=sqlite_cache
DB_CACHE_TABLE=cache
DB_CACHE_LOCK_CONNECTION=sqlite_cache
DB_CACHE_LOCK_TABLE=cache_locks

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

config/database.php

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

'sqlite_cache' => [
'driver' => 'sqlite',
'url' => env('DB_URL'),
'database' => env('DB_DATABASE', database_path('database.sqlite')),
'prefix' => '',
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
'busy_timeout' => null,
'journal_mode' => null,
'synchronous' => null,
],
Что заставило команду php artisanmigrate работать, но не приложение? Как я могу заставить приложение обнаружить существование базы данных?
Что я пробовал: Действия, описанные выше.
Что я могу сделать? ожидалось: приложение работает нормально, поскольку команды php artisanmigration выполнялись нормально.
Что произошло на самом деле: приложению не удалось найти расположение базы данных sqlite, даже несмотря на то, что php artisanmigrate и связанные с ней команды работали просто отлично.

Подробнее здесь: https://stackoverflow.com/questions/792 ... qlite-does
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Ошибка базы данных SQLite студии Android (android.database.sqlite.SQLiteException)
    Anonymous » » в форуме Android
    0 Ответы
    58 Просмотры
    Последнее сообщение Anonymous
  • Отсутствует /var/run/php-fpm/php7.4-fpm.sock или /var/run/php-fpm/
    Anonymous » » в форуме Php
    0 Ответы
    163 Просмотры
    Последнее сообщение Anonymous
  • Отсутствует /var/run/php-fpm/php7.4-fpm.sock или /var/run/php-fpm/
    Anonymous » » в форуме Php
    0 Ответы
    49 Просмотры
    Последнее сообщение Anonymous
  • Невозможно неявно преобразовать тип «System.Collections.Generic.List<Website.Model.ModelName>» в «System.Collections.Gen
    Anonymous » » в форуме C#
    0 Ответы
    95 Просмотры
    Последнее сообщение Anonymous
  • Laravel 8 JetStream || Неопределенная переменная: _instance (View: C: \ xampp \ htdocs \ veye-website \ resources \ view
    Anonymous » » в форуме Php
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Linux»