LavaLite / cms

Multilingual PHP CMS built with Laravel and bootstrap

Home Page:https://lavalite.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[feature] can you support postgresql?

zhangmazi opened this issue · comments

i have try change codes to install on postgresql, but the result have some errors.

eg.

  1. pq, insert PK(id) issue. (artisan lavalite:install)

codes
file: vendor/lavalite/framework/src/Litepie/Install/Installers/Scripts/ConfigureDatabase.php

`
public function fire(Command $command)
{
$this->command = $command;

    $connected = false;

    // while (!$connected) {
        // $host = $this->askDatabaseHost();
        // $username = $this->askDatabaseUsername();
        // $password = $this->askDatabasePassword();
        // $database = $this->askDatabaseName();

        $host = '127.0.0.1';
        $port = '5432';
        $username = 'user_dev';
        $password = '6666666';
        $database = 'lavalite_cms';

        if ($this->databaseConnectionIsValid($host, $port, $username, $password, $database)) {
            config(['database.connections.pgsql.host' => $host]);
            config(['database.connections.pgsql.port' => $port]);
            config(['database.connections.pgsql.username' => $username]);
            config(['database.connections.pgsql.password' => $password]);
            config(['database.connections.pgsql.database' => $database]);
            $connected = true;
        } else {
            $command->error('Please ensure your database credentials are valid.');
        }
     }
    if ($connected) {
        $this->env->write($database, $username, $password, $host);
        $command->info('Database successfully configured.');
    }

}


protected function databaseConnectionIsValid($host, $port, $username, $password, $database)
{
    try {
        // $link = @mysqli_connect($host, $username, $password, $database);
        $pgConnectionString = sprintf('host=%s port=%d dbname=%s user=%s password=%s', $host, $port, $username, $password, $database);
        var_dump($pgConnectionString);
        $link = @pg_connect($pgConnectionString);

        if (!$link) {
            return false;
        }

        return true;
    } catch (Exception $e) {
        return false;
    }
}

}

`