8000 Merge pull request #317 from tucksaun/fix/315 · glengemann/symfony-cli@b16175e · GitHub
[go: up one dir, main page]

Skip to content

Commit b16175e

Browse files
authored
Merge pull request symfony-cli#317 from tucksaun/fix/315
Make DB version check before deploy more robust, fix symfony-cli#315
2 parents 6c6a669 + 60d47ba commit b16175e

File tree

2 files changed

+18
-12
lines changed

2 files changed

+18
-12
lines changed

commands/db_versions.go

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@ package commands
33
import (
44
"errors"
55
"io/ioutil"
6+
"net/url"
67
"os"
78
"path/filepath"
89
"strings"
910

11+
"github.com/joho/godotenv"
1012
"gopkg.in/yaml.v2"
1113
)
1214

@@ -47,22 +49,26 @@ func readDBVersionFromDotEnv(projectDir string) (string, error) {
4749
return "", nil
4850
}
4951

50-
dotEnv, err := ioutil.ReadFile(path)
52+
vars, err := godotenv.Read(path)
5153
if err != nil {
5254
return "", err
5355
}
5456

55-
lines := strings.Split(string(dotEnv), "\n")
56-
for _, line := range lines {
57-
if !strings.HasPrefix(line, "DATABASE_URL=") {
58-
continue
59-
}
60-
if !strings.Contains(line, "serverVersion=") {
61-
return "", nil
62-
}
63-
return strings.TrimRight(strings.Split(strings.Split(line, "serverVersion=")[1], "&")[0], "\""), nil
57+
databaseUrl, defined := vars["DATABASE_URL"]
58+
if !defined {
59+
return "", nil
60+
}
61+
62+
if !strings.Contains(databaseUrl, "serverVersion=") {
63+
return "", nil
6464
}
65-
return "", nil
65+
66+
url, err := url.Parse(databaseUrl)
67+
if err != nil {
68+
return "", err
69+
}
70+
71+
return url.Query().Get("serverVersion"), nil
6672
}
6773

6874
func readDBVersionFromDoctrineConfigYAML(projectDir string) (string, error) {

commands/testdata/platformsh/version-mismatch-env/.env

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@
44
#
55
# DATABASE_URL="sqlite:///%kernel.project_dir%/var/data.db"
66
# DATABASE_URL="mysql://db_user:db_password@127.0.0.1:3306/db_name?serverVersion=5.7"
7-
DATABASE_URL="postgresql://db_user:db_password@127.0.0.1:5432/db_name?serverVersion=13&charset=utf8"
7+
DATABASE_URL="postgresql://db_user:db_password@127.0.0.1:5432/db_name?charset=utf8&serverVersion=13"
88
###< doctrine/doctrine-bundle ###

0 commit comments

Comments
 (0)
0