8

When I try to use 'php artisan migrate' in Laravel I get 2 errors:

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

[PDOException] SQLSTATE[HY000]: General error: 26 file is encrypted or is not a database

I created a storage/database.sqlite file before attempting the migration. I also edited the config/database.php, making the default=sqlite. I am using windows and have sqlite3 installed.

Has anyone encountered this/know how to get past it?

Community
  • 1
  • 1
S. Hantz
  • 81
  • 1
  • 3

4 Answers4

10

I had the same results, in my case the /database/database.sqlite file was not empty.

I deleted the contents reran php artisan migrate and the migration table was created successfully.

liamvictor
  • 3,251
  • 1
  • 22
  • 25
1

Running Laravel in Windows under the Powershell console I was getting the same errors as the original poster. The documentation reads After creating a new SQLite database using a command such as touch database/database.sqlite... The Powershell equivalent of touch is typically 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...

When creating my database.sqlite file I received these errors. I deleted the database and recreated it using the New-Item command and it worked properly

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

If somebody came here with the same error with manually created table in sqlite db - it could be the sqlite version mismatch. I solved the same error by emptying db file and recreate the table with getConnection()->statement('CREATE TABLE

-1

check if your .sqlite file is empty and the is no indentation(no spaces)