|
1 | 1 | <?php
|
2 | 2 | // this script will run after a successfull heroku deployment
|
3 | 3 |
|
4 |
| -echo "\nCreating db schema..."; |
| 4 | +require_once __DIR__ . '/../vendor/autoload.php'; |
| 5 | + |
| 6 | +//require_once('vendor/arzynik/cana/src/Cana/Model.php'); |
| 7 | +//require_once('vendor/arzynik/cana/src/Cana/Crypt.php'); |
| 8 | + |
| 9 | +echo "\nInstalling..."; |
| 10 | + |
| 11 | +$url = parse_url(getenv('DATABASE_URL') ?? getenv('JAWSDB_MARIA_URL')); |
5 | 12 |
|
6 |
| -$url = parse_url(getenv('JAWSDB_MARIA_URL')); |
7 | 13 | if (!$url) {
|
8 |
| - echo "No JAWSDB_MARIA_URL"; |
| 14 | + echo "\nNo DATABASE_URL or JAWSDB_MARIA_URL"; |
9 | 15 | exit(0);
|
10 | 16 | }
|
11 | 17 | $type = $url['scheme'] == 'postgres' ? 'pgsql' : 'mysql';
|
| 18 | +$options = null; |
12 | 19 |
|
13 | 20 | $db = new \PDO($type.':host='.$url['host'].($url['port'] ? ';port='.$url['port'] : '').';dbname='.substr($url['path'], 1), $url['user'], $url['pass'], $options);
|
14 | 21 | $db->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
|
15 | 22 | $db->setAttribute(\PDO::ATTR_EMULATE_PREPARES, false);
|
16 |
| -$db->exec(file_get_contents('db/dump.sql')); |
17 | 23 |
|
| 24 | +if ($argv[1] == '--force') { |
| 25 | + // drop all the tables and force install |
| 26 | + echo "\nCDroping existing tables..."; |
| 27 | + |
| 28 | + $query = "SELECT table_name FROM information_schema.tables WHERE table_schema = '".substr($url['path'], 1)."';"; |
| 29 | + $exec = "SET FOREIGN_KEY_CHECKS = 0;\n"; |
| 30 | + foreach ($db->query($query) as $row) { |
| 31 | + $exec .= 'DROP TABLE IF EXISTS `'.$row[0]."`;\n"; |
| 32 | + } |
| 33 | + $exec .= "SET FOREIGN_KEY_CHECKS = 1;\n"; |
| 34 | + $db->exec($exec); |
| 35 | + |
| 36 | + echo "complete."; |
| 37 | +} |
| 38 | + |
| 39 | +echo "\nCreating db schema..."; |
| 40 | +$db->exec(file_get_contents('db/dump.sql')); |
18 | 41 | echo "complete.\n";
|
19 | 42 |
|
20 | 43 | echo "Running db migrate scripts...\n";
|
|
51 | 74 |
|
52 | 75 | echo "Inserting dummy data...";
|
53 | 76 |
|
54 |
| -require_once('vendor/arzynik/cana/src/Cana/Model.php'); |
55 |
| -require_once('vendor/arzynik/cana/src/Cana/Crypt.php'); |
56 | 77 | $crypt = new Cana_Crypt(getenv('ENCRYPTION_KEY'));
|
57 | 78 |
|
58 | 79 | $sql = str_replace([
|
|
0 commit comments