Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

API Increased support to 9.2 #102

Merged
merged 1 commit into from
Sep 17, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 25 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,20 +10,37 @@
## Requirements

* SilverStripe 4.0
* PostgreSQL 8.3.x or greater must be installed
* PostgreSQL <8.3.0 may work if T-Search is manually installed
* Known to work on OS X Leopard, Windows Server 2008 R2 and Linux
* PostgreSQL >=9.2
* Note: PostgreSQL 10 has not been tested

## Installation

1. Install via composer `composer require silverstripe/postgresql` or extract the contents
so they reside as a `postgresql` directory inside your SilverStripe project code
2. Open the installer by browsing to install.php, e.g. http://localhost/silverstripe/install.php
3. Select PostgreSQL in the database list and enter your database details
```
composer require silverstripe/postgresql
```

## Configuration

### Environment file

Add the following settings to your `.env` file:

```
SS_DATABASE_CLASS=PostgreSQLDatabase
SS_DATABASE_USERNAME=
SS_DATABASE_PASSWORD=
```

See [environment variables](https://docs.silverstripe.org/en/4/getting_started/environment_management) for more details. Note that a database will automatically be created via `dev/build`.

### Through the installer

Open the installer by browsing to install.php, e.g. http://localhost/install.php
Select PostgreSQL in the database list and enter your database details

## Usage Overview

See docs/en for more information about configuring the module.
See [docs/en](docs/en/README.md) for more information about configuring the module.

## Known issues

Expand Down
101 changes: 1 addition & 100 deletions docs/en/README.md
Original file line number Diff line number Diff line change
@@ -1,86 +1,5 @@
# PostgreSQL Database Module

SilverStripe now has tentative support for PostgreSQL ('Postgres').

## Requirements

SilverStripe 2.4.0 or greater. (PostgreSQL support is NOT available
in 2.3.).

SilverStripe supports Postgres versions 8.3.x, 8.4.x and onwards.
Postgres 8.3.0 launched in February 2008, so SilverStripe has a fairly
modern but not bleeding edge Postgres version requirement.

Support for 8.2.x is theoretically possible if you're willing to manually
install T-search. 8.2.x has not been tested either, so there may be other
compatibility issues. The EnterpriseDB versions of Postgres also work, if
you'd prefer a tuned version.

## Installation

You have three options to install PostgreSQL support with SilverStripe.

### Option 1 - Installer

The first option is to use the installer. However, this is currently only
supported since SilverStripe 2.4.0 beta2 (or using the daily builds).

1. Set up SilverStripe somewhere where you can start the installer - you
should only see one database “MySQL” to install with.
2. Download a copy of the “postgresql” module from here:
http://silverstripe.org/postgresql-module
3. Extract the archive you downloaded. Rename the directory from
“postgresql-trunk-rxxxx” to “postgresql” and copy it into the SilverStripe
directory you just set up
4. Open the installer once again, and a new option “PostgreSQL” should appear.
You can now proceed through the installation without having to change any code.

### Option 2 - Manual

The second option is to setup PostgreSQL support manually. This can be achieved
by following these instructions:

1. Set up a fresh working copy of SilverStripe
2. Download a copy of the “postgresql” module from here: http://silverstripe.org/postgresql-module
3. Extract the archive you downloaded. Rename the directory from
“postgresql-trunk-rxxxx” to “postgresql” and copy it into the SilverStripe
directory you just set up.
4. Open up your mysite/_config.php file and add (or update) the $databaseConfig
array like so:

> $databaseConfig = array(
> 'type' => 'PostgreSQLDatabase',
> 'server' => '[server address e.g. localhost]',
> 'username' => 'postgres',
> 'password' => 'mypassword',
> 'database' => 'SS_mysite'
> );

Finally, visit dev/build so that SilverStripe can build the database schema and
default records.

### Option 3 - Environment file

Finally, the third option is to change your environment to point to
PostgreSQLDatabase as a database class. Do this if you're currently using an
_ss_environment.php file.

1. Download a copy of the “postgresql” module from here: http://silverstripe.org/postgresql-module
2. Extract the archive you downloaded. Rename the directory from
postgresql-trunk-rxxxx” to “postgresql” and copy it into your SS directory
3. Add the following to your existing _ss_environment.php file:

> define('SS_DATABASE_CLASS', 'PostgreSQLDatabase');

Last steps:

1. Ensure your SS_DATABASE_USERNAME and SS_DATABASE_PASSWORD defines in
_ss_environment.php are correct to the PostgreSQL server.
2. Ensure that your mysite/_config.php file has a database name defined, such
as “SS_mysite”.
3. Visit dev/build so that SilverStripe can build the database schema and
default records

## Features

Here is a quick list of what's different in the Postgres module (a full
Expand Down Expand Up @@ -300,22 +219,4 @@ Otherwise this extension will try to connect to "postgres" Database to check DB
connection, no matter what you entered in the "Database Name" field during
installation.

Make sure you have set the "search_path" correct for your database user.

## Known Issues

All column and table names must be double-quoted. PostgreSQL automatically
lower-cases columns, and your queries will fail if you don't.

Ts_vector columns are not automatically detected by the built-in search filters.
That means if you're doing a search through the CMS on a ModelAdmin object, it
will use LIKE queries which are very slow.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this part no longer true now?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Those known issues were a duplicate from the main README, this just deletes docs/en/README.md


If you're writing your own front-end search system, you can specify the columns
to use for search purposes, and you get the full benefits of T-Search.

If you are using unsupported modules, there may be instances of MySQL-specific
SQL queries which will need to be made database-agnostic where possible.



Make sure you have set the "search_path" correct for your database user.