root/releases/0.6rc2/lib/dbsetup.php

Revision 269, 3.1 kB (checked in by ben, 3 years ago)

--

  • Property svn:eol-style set to native
Line 
1 <?php
2 global $db;
3
4 /// Check if the main tables have been installed yet or not.
5 if (! $tables = $db->Metatables() ) {    // No tables yet at all.
6     $maintables = false;
7 } else {
8     $maintables = false;
9     $datalists = false;
10     foreach ($tables as $table) {
11         if (preg_match("/^{$CFG->prefix}users$/", $table)) {
12             $maintables = true;
13         }
14         if (preg_match("/^{$CFG->prefix}datalists$/", $table)) {
15             $datalists = true;
16         }
17     }
18 }
19
20 if (!$maintables) {
21     if (file_exists("$CFG->dirroot/lib/db/$CFG->dbtype.sql")) {
22         $db->debug = true;
23         if (modify_database("$CFG->dirroot/lib/db/$CFG->dbtype.sql")) {
24             include_once("$CFG->dirroot/version.php");
25             set_config('version', $version);
26             $db->debug = false;
27             notify($strdatabasesuccess, "green");
28         } else {
29             $db->debug = false;
30             error("Error: Main databases NOT set up successfully");
31         }
32     } else {
33         error("Error: Your database ($CFG->dbtype) is not yet fully supported by Elgg.  See the lib/db directory.");
34     }
35     print_continue("index.php");
36     die;
37 }
38
39 if (run("users:flags:get", array("admin",$_SESSION['userid']))) {
40     
41     if (empty($CFG->version)) {
42         $CFG->version = 1;
43     }
44
45     if (!$datalists) {
46         $CFG->version = -1;
47     }
48
49     /// Upgrades
50     include_once("$CFG->dirroot/version.php");              # defines $version
51     include_once("$CFG->dirroot/lib/db/$CFG->dbtype.php");  # defines upgrades
52
53     if ($CFG->version) {
54         if ($version > $CFG->version) {  // upgrade
55
56             $a->oldversion = "$CFG->release ($CFG->version)";
57             $a->newversion = "$release ($version)";
58
59             if (empty($_GET['confirmupgrade'])) {
60                 notice_yesno(gettext('Need to upgrade database'), $CFG->wwwroot . '?confirmupgrade=yes', '');
61                 exit;
62
63             } else {
64                 $db->debug=true;
65                 if (main_upgrade($CFG->version)) {
66                     $db->debug=false;
67                     if (set_config("version", $version)) {
68                         notify($strdatabasesuccess, "green");
69                         print_continue("index.php");
70                         exit;
71                     } else {
72                         notify("Upgrade failed!  (Could not update version in config table)");
73                     }
74                 } else {
75                     $db->debug=false;
76                     notify("Upgrade failed!  See /version.php");
77                 }
78             }
79         } else if ($version < $CFG->version) {
80             notify("WARNING!!!  The code you are using is OLDER than the version that made these databases!");
81         }
82
83     } else {
84         if (set_config("version", $version)) {
85             print_header("Elgg $release ($version)");
86             print_continue("index.php");
87             die;
88         } else {
89             $db->debug=true;
90             if (main_upgrade(0)) {
91                 print_continue("index.php");
92             } else {
93                 error("A problem occurred inserting current version into databases");
94             }
95             $db->debug=false;
96         }
97     }
98
99 }
100 ?>
Note: See TracBrowser for help on using the browser.