Support multiple databases as well.

This commit is contained in:
green-ponies (jgen) 2012-04-18 00:55:39 -04:00
parent dd88127c30
commit caec1ac824
2 changed files with 24 additions and 2 deletions

View File

@ -412,12 +412,34 @@ class Database {
} }
} }
/** /**
* Create a table from pseudo-SQL * Create a table from pseudo-SQL
*/ */
public function create_table($name, $data) { public function create_table($name, $data) {
$this->execute($this->engine->create_table_sql($name, $data)); $this->execute($this->engine->create_table_sql($name, $data));
} }
/**
* Returns the number of tables present in the current database.
*/
public function count_tables() {
if($this->engine->name === "mysql") {
return count(
$this->get_all("SHOW TABLES")
);
} else if ($this->engine->name === "pgsql") {
return count(
$this->get_all("SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'")
);
} else if ($this->engine->name === "sqlite") {
return count(
$this->get_all(".tables")
);
} else {
// Hard to find a universal way to do this...
return NULL;
}
}
} }
?> ?>

View File

@ -300,7 +300,7 @@ function create_tables() { // {{{
try { try {
$db = new Database(); $db = new Database();
if ( count($db->get_all("SHOW TABLES")) > 0 ) { if ( $db->count_tables() > 0 ) {
echo " echo "
<p>Warning: The Database schema is not empty!</p> <p>Warning: The Database schema is not empty!</p>
<p>Please ensure that the database you are installing Shimmie with is empty before continuing.</p> <p>Please ensure that the database you are installing Shimmie with is empty before continuing.</p>