Laravel sqlite 相对路径

问题描述 投票:0回答:4

我想在多台电脑上部署我的应用程序,并且它使用 sqlite 作为数据库。 有没有办法在我的环境文件中设置相对路径而不是绝对路径? 有没有除了 sqlite 以外的替代方案来拥有便携式数据库?

无论如何都有使用这样的东西的例子:

DB_DATABASE=${ variable/to/database/folder }/database.sqlite

代替:

DB_DATABASE=C:\wamp64\www\JUICE\projects\my-project\database\database.sqlite
laravel sqlite
4个回答
12
投票

第一步注释掉.env中的DB_DATABASE:

#DB_DATABASE=homestead

其次,检查

config/database.php
中是否有这个,它是 laravel 附带的代码:

'sqlite' => [
            'driver' => 'sqlite',
            'url' => env('DATABASE_URL'),
            'database' => env('DB_DATABASE', database_path('database.sqlite')),
            'prefix' => '',
            'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
        ],

并且您拥有相对于应用程序根目录的数据库路径,并随着应用程序目录的变化而变化,因为您依赖于路径助手

database_path()

我无法给你任何替代方案,我满意地使用

sqlite
进行本地开发。


3
投票

默认数据库配置已包含 sqlite 数据库文件的相对路径

'database' => env('DB_DATABASE', database_path('database.sqlite')),

现在使用您的

.env
 变量重命名文件,但保留相对路径,您可以这样做

.env

DB_DATABASE=different-name.sqlite

config/database.php

'database' => database_path(env('DB_DATABASE')),

除了sqlite之外,还有什么替代品来拥有可移植的数据库吗?

  • 您可以将任何数据库(例如 MySQL)导出为填充有数据的

    .sql
    文件并将其推送到您的 git 存储库

  • 另一种方法是使用 Python 脚本使用 Redis

# dump database 0
./redisdl.py > dump.json
./redisdl.py -o dump.json

# load into database 0
./redisdl.py -l < dump.json
./redisdl.py -l dump.json

0
投票

我可以确认以下内容适用于最新版本的 Laravel。

在 config/database.php 中,使用 database_path() 帮助程序修改数据库键/值对:

'database' => env('DB_DATABASE', database_path('database.sqlite')),

0
投票

使用 Windows 和 Laravel 10 进行测试运行 pwd 命令获取完整路径,然后在数据库文件夹中创建 sqlite 文件。

环境文件

DB_CONNECTION=sqlite
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=E:\WebProjects\myProject/database/database.sqlite
DB_USERNAME=root
DB_PASSWORD=
© www.soinside.com 2019 - 2024. All rights reserved.