Почему sqlite3 не работает в моей настройке усадьбы?
Я недавно установил усадьбу и определенно начинаю в этом. С учетом сказанного, я установил Homestead в соответствии с учебником 5.2, установил Laravel и начал следовать учебникам. Все шло хорошо, пока я не дошел до той части, где я переключаю базу данных на sqlite3 и выполняю миграцию. Я застрял там. Я объясню обстоятельства как можно более подробно.
Я использую Windows 8. Я установил усадьбу. Усадьба установлена в C:\Users\Joe. Моя папка Laravel находится в C:\laravel\Sites Текущий сайт, над которым я работаю, находится в C:\laravel\Sites\test\
Я изменил.env, DB_DATABASE на; "DB_DATABASE= хранение /database.sqlite".
Внутри файла Homestead.yaml я изменил базу данных на storage/database.sqlite.
Я открыл git bash внутри C:\laravel\Sites \ test. Я использовал команду "touch storage/database.sqlite". Джо @JOEALAI /C/laravel/ Сайты /test $ touch storage/database.sqlite $
Затем я использую команду "php artisan migrate" внутри git bash, и она говорит мне:
Joe @JOEALAI /C/laravel/ Sites / test $ php artisan migrate Мигрированный: 2014_1012000000_create_users_table Мигрированный: 2014_10_12_100000_create_password_resets_table $
Поэтому я знаю, что это создается. Я также проверил файл внутри хранилища / папки и database.sqlite
Теперь следующая часть заключается в том, чтобы ввести "sqlite3" в тот же git bash, который я только что использовал для этой миграции, и он говорит следующее:
Джо @JOEALAI /C/laravel/Sites/test $ sqlite3 sh: sqlite3: команда не найдена $
Итак, то, что я сделал дальше, ушёл в усадьбу и набрал sqlite3, и я действительно получил ответ:
vagrant @ hometead:~$ sqlite3 SQLite версия 3.8.2 2013-12-06 14:53:30 Введите ".help" для инструкций Введите операторы SQL, оканчивающиеся на ";" SQLite>
Затем я сделал то, что он сказал, и набрал.tables. Это дает мне следующее:
sqlite>.tables sqlite>
Ничего не произошло.
Затем я ввожу.databases, и это ответ, который я получаю.
sqlite>.databases seq name file
0 основной sqlite>
поэтому я нажал Ctrl + Z, а затем набрал: vagrant@homestead: ~ $ sqlite3 storage / database.sqlite
Затем он говорит: SQLite версии 3.8.2 2013-12-06 14:53:30 Введите ".help" для инструкций Введите операторы SQL, оканчивающиеся на ";" SQLite>
Затем я набираю:.tables и там написано
Ошибка: невозможно открыть базу данных "storage / database.sqlite": невозможно открыть файл базы данных
Я повторяю то же самое с базами данных. Та же ошибка.
Что мне не хватает? Я ломаю голову над этим. Я застрял здесь на целую неделю. Сначала я попробовал использовать WAMP, и у меня возникла та же проблема, за исключением того, что у меня никогда не было ЛЮБОГО ответа, потому что у меня не было усадьбы. Сейчас я установил усадьбу и пользуюсь ею, а она все еще не работает.
Я подумал, что, возможно, мне нужно было сделать ВСЕ эти команды в бродячем окне. Я вошел в окно vagrant усадьбы и попытался выполнить команду "php artisan migrate", и она сообщает мне vagrant@homestead:~$ php artisan migrate Не удалось открыть входной файл: artisan vagrant@homestead:
Просто ради аргументов, я предоставлю некоторые данные в моих конфигурационных файлах.
DB_CONNECTION=sqlite DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE= хранилище /database.sqlite DB_USERNAME= усадьба DB_PASSWORD= секрет
Мой файл Homestead.yaml:
ip: "192.168.10.10" память: 2048 процессор: 1 поставщик: virtualbox
авторизовать: ~/.ssh/id_rsa.pub
ключи: - ~/.ssh/id_rsa
папки: - карта: C:/laravel/ сайты в: / home / vagrant / сайты
сайты: - карта: lol.app к: / home / vagrant / сайты /test/public
базы данных: - база данных
database.php
'default' => env ('DB_CONNECTION', 'sqlite'), 'sqlite' => ['driver' => 'sqlite', 'database' => env ('DB_DATABASE', database_path ('database.sqlite')), 'prefix' => '',],
Если кто-нибудь может помочь мне разобраться, как это настроить, я буду очень признателен. Если вам нужна дополнительная информация, я с радостью ее предоставлю.
Спасибо!
1 ответ
Хорошо, после того, как я немного поигрался с этим, я нашел решение.
В обучающем видео он говорит мне набрать sqlite3 storage/database.sqlite (это созданный мной файл "touch storage / database.sqlite").
Когда я набираю эту команду, она не выдает ошибку.
ТЕМ НЕ МЕНИЕ
Я просматривал команды sqlite3 и в конце концов использовал команду, в которой показывался текущий каталог. Я попал туда, набрав:
sqlite3
sqlite3>.open database.sqlite
sqlite3>.databases и отображаемое имя файла seq 0 main /home/vagrant/database.sqlite
и БУМ я наконец увидел проблему.
"/home/vagrant/database.sqlite" должен был быть /home/vagrant/Sites/test/storage/database.sqlite
Так что все, что мне нужно было сделать, это набрать
sqlite3 сайты / тест / хранилище / database.sqlite
и он перешел в правильную папку.
Теперь, когда я набираю ".tables", он показывает мне пароль миграции, сбрасывает пользователей
что является желаемым результатом.
Взял меня достаточно долго! Я почти сдался! Я действительно надеюсь, что это кому-то поможет.