簡體   English   中英

Laravel php artisan 遷移不起作用

[英]Laravel php artisan migrate not working

當我嘗試在 Laravel 中使用 'php artisan migrate' 時,出現 2 個錯誤:

[Illuminate\\Database\\QueryException] SQLSTATE[HY000]: General error: 26 file is encrypted or not a database (SQL: select * from sqlite_master where type = 'table' and name = migrations)

[PDOException] SQLSTATE[HY000]:一般錯誤:26 文件已加密或不是數據庫

在嘗試遷移之前,我創建了一個 storage/database.sqlite 文件。 我還編輯了 config/database.php,使default=sqlite 我正在使用 Windows 並安裝了sqlite3

有沒有人遇到過這個/知道如何克服它?

我得到了相同的結果,就我而言,/ /database/database.sqlite文件不為空。

我刪除了 reran php artisan migrate的內容,並且成功創建了遷移表。

在 Windows 中的 Powershell 控制台下運行 Laravel 我遇到了與原始海報相同的錯誤。 文檔讀取使用諸如touch database/database.sqlite 之類的命令創建新的 SQLite 數據庫之后……與 touch 等效的 Powershell 通常是Out-File FILENAME

PS D:\Learning\PHP-Laravel\database> out-file database.sqlite
PS D:\Learning\PHP-Laravel> php artisan migrate
   Illuminate\Database\QueryException  : SQLSTATE[HY000]: General error: 26 file is not a database...

在創建我的database.sqlite文件時,我收到了這些錯誤。 我刪除了數據庫並使用New-Item命令重新創建它並且它正常工作

new-item -ItemType File -Name database.sqlite
PS D:\Learning\PHP-Laravel> php artisan migrate
Migration table created successfully.

檢查您作為.sqlite制作的文件,並確保它是空的,如果不是,則將其設為

database/db.sqlite 

然后運行遷移

如果有人在 sqlite db 中手動創建表時遇到相同的錯誤 - 可能是 sqlite 版本不匹配。 我通過清空 db 文件解決了同樣的錯誤並使用 getConnection()->statement('CREATE TABLE

檢查您的 .sqlite 文件是否為空並且沒有縮進(沒有空格)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM