备份和恢复PostgreSQL数据库,并在windows 7中使用laravel设置本地主机环境。

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

1)打开C:\\Program Files\PostgreSQL\12\data\pg_hba.conf。

变更:主机所有所有::1128 md5

宿主所有::1128信任

2)打开pgAdmin &创建一个localhost服务器,用户名为postgres,密码为空。

* 用于备份或恢复现有数据库名称的转储*。

打开cmd line,进入C:\\Program Files\PostgreSQL\12\bin并按回车键。

并按要求输入以下命令

备份:pg_dump.exe -U postgres -d d dbname -f D:\Backup\。

 or direct take backup using pgAdmin backup option and store in D:\Backup\<backup-file-name>  

hint: backup file should be tar or dump type

还原备份:pg_restore -U postgres -d d dbname -1 D:\Backup/D。

3) 在laravel代码文件夹中打开.env文件,并添加DB_SSLMODE=disable。

4) 在laravel代码文件夹中打开configdatabase.php,并为'pgsql'数组。

 replace

     'sslmode'=> 'require', 

 to    
    'sslmode' => env('DB_SSLMODE','require'),
windows postgresql laravel-5 pgadmin-4
1个回答
0
投票

如何在Laravel中备份PostgreSql数据库?

  1. 使用composer安装laravel包。

    composer require spatie/laravel-backup

  2. 在你的备份控制器中插入以下一行.

    use Spatie\DbDumper\Databases\PostgreSql;

  3. 在你的备份控制器中写下以下代码.

    date_default_timezone_set('EST');
    
    try {
        $this->info('The backup has been started');
        $backup_name = 'backup-' . date('c')  . '.sql';
        $backup_path = 'app/backups/' . $backup_name;
        PostgreSql::create()
            ->setDbName(env('DB_DATABASE'))
            ->setUserName(env('DB_USERNAME'))
            ->setPassword(env('DB_PASSWORD'))
            ->dumpToFile($backup_path);
        $this->info('The backup has been proceed successfully.');
    } catch (ProcessFailedException $exception) {
        logger()->error('Backup exception', compact('exception'));
        $this->error('The backup process has been failed.');
    }
    
© www.soinside.com 2019 - 2024. All rights reserved.