put DBupdate.php into the install.php under Shimmie Repair Console.
This commit is contained in:
parent
9009ab2c95
commit
36a04fd62c
21
DBupdate.php
21
DBupdate.php
@ -1,21 +0,0 @@
|
|||||||
<?php
|
|
||||||
require_once "core/compat.inc.php";
|
|
||||||
require_once "core/database.class.php";
|
|
||||||
include_once "config.php";
|
|
||||||
$db = new Database();
|
|
||||||
echo "Fixing user_favorites table....";
|
|
||||||
($db->Execute("ALTER TABLE user_favorites ENGINE=InnoDB;")) ? print_r("ok<br>") : print_r("failed<br>");
|
|
||||||
echo "adding Foreign key to user ids...";
|
|
||||||
($db->Execute("ALTER TABLE user_favorites ADD CONSTRAINT foreign_user_favorites_user_id FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE;"))? print_r("ok<br>"):print_r("failed<br>");
|
|
||||||
echo "cleaning, the table from deleted image favorites...<br>";
|
|
||||||
$rows = $db->get_all("SELECT * FROM user_favorites WHERE image_id NOT IN ( SELECT id FROM images );");
|
|
||||||
foreach( $rows as $key => $value)
|
|
||||||
$db->Execute("DELETE FROM user_favorites WHERE image_id = :image_id;", array("image_id" => $value["image_id"]));
|
|
||||||
echo "adding forign key to image ids...";
|
|
||||||
($db->Execute("ALTER TABLE user_favorites ADD CONSTRAINT user_favorites_image_id FOREIGN KEY (image_id) REFERENCES images(id) ON DELETE CASCADE;"))? print_r("ok<br>"):print_r("failed<br>");
|
|
||||||
echo "adding foreign keys to private messages...";
|
|
||||||
($db->Execute("ALTER TABLE private_message
|
|
||||||
ADD CONSTRAINT foreign_private_message_from_id FOREIGN KEY (from_id) REFERENCES users(id) ON DELETE CASCADE,
|
|
||||||
ADD CONSTRAINT foreign_private_message_to_id FOREIGN KEY (to_id) REFERENCES users(id) ON DELETE CASCADE;")) ? print_r("ok<br>"):print_r("failed<br>");
|
|
||||||
echo "DONE!!!!";
|
|
||||||
?>
|
|
55
install.php
55
install.php
@ -76,6 +76,15 @@ if(is_readable("config.php")) {
|
|||||||
</form>
|
</form>
|
||||||
";
|
";
|
||||||
*/
|
*/
|
||||||
|
echo "<h3>Database quick fix for User deletion</h3>";
|
||||||
|
echo "just a database fix for those who instaled shimmie before 2012 january the 22rd.<br>";
|
||||||
|
echo "Note: some things needs to be done manually, to work properly.<br>";
|
||||||
|
echo "WARNING: ONLY PROCEEDS IF YOU KNOW WHAT YOU ARE DOING!";
|
||||||
|
echo "
|
||||||
|
<form action='install.php?action=Database_user_deletion_fix' method='POST'>
|
||||||
|
<input type='submit' value='go!'>
|
||||||
|
</form>
|
||||||
|
";
|
||||||
|
|
||||||
echo "<h3>Log Out</h3>";
|
echo "<h3>Log Out</h3>";
|
||||||
echo "
|
echo "
|
||||||
@ -87,6 +96,9 @@ if(is_readable("config.php")) {
|
|||||||
else if($_GET["action"] == "logout") {
|
else if($_GET["action"] == "logout") {
|
||||||
session_destroy();
|
session_destroy();
|
||||||
}
|
}
|
||||||
|
else if($_GET["action"] == "Database_user_deletion_fix") {
|
||||||
|
Database_user_deletion_fix();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
echo "
|
echo "
|
||||||
<h3>Login</h3>
|
<h3>Login</h3>
|
||||||
@ -372,6 +384,49 @@ EOD;
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
} // }}}
|
} // }}}
|
||||||
|
|
||||||
|
function Database_user_deletion_fix() {
|
||||||
|
try {
|
||||||
|
require_once "core/database.class.php";
|
||||||
|
$db = new Database();
|
||||||
|
|
||||||
|
echo "Fixing user_favorites table....";
|
||||||
|
|
||||||
|
($db->Execute("ALTER TABLE user_favorites ENGINE=InnoDB;")) ? print_r("ok<br>") : print_r("failed<br>");
|
||||||
|
echo "adding Foreign key to user ids...";
|
||||||
|
|
||||||
|
($db->Execute("ALTER TABLE user_favorites ADD CONSTRAINT foreign_user_favorites_user_id FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE;"))? print_r("ok<br>"):print_r("failed<br>");
|
||||||
|
echo "cleaning, the table from deleted image favorites...<br>";
|
||||||
|
|
||||||
|
$rows = $db->get_all("SELECT * FROM user_favorites WHERE image_id NOT IN ( SELECT id FROM images );");
|
||||||
|
|
||||||
|
foreach( $rows as $key => $value)
|
||||||
|
$db->Execute("DELETE FROM user_favorites WHERE image_id = :image_id;", array("image_id" => $value["image_id"]));
|
||||||
|
|
||||||
|
echo "adding forign key to image ids...";
|
||||||
|
|
||||||
|
($db->Execute("ALTER TABLE user_favorites ADD CONSTRAINT user_favorites_image_id FOREIGN KEY (image_id) REFERENCES images(id) ON DELETE CASCADE;"))? print_r("ok<br>"):print_r("failed<br>");
|
||||||
|
|
||||||
|
echo "adding foreign keys to private messages...";
|
||||||
|
|
||||||
|
($db->Execute("ALTER TABLE private_message
|
||||||
|
ADD CONSTRAINT foreign_private_message_from_id FOREIGN KEY (from_id) REFERENCES users(id) ON DELETE CASCADE,
|
||||||
|
ADD CONSTRAINT foreign_private_message_to_id FOREIGN KEY (to_id) REFERENCES users(id) ON DELETE CASCADE;")) ? print_r("ok<br>"):print_r("failed<br>");
|
||||||
|
|
||||||
|
echo "Just one more step...which you need to do manually:<br>";
|
||||||
|
echo "You need to go to your database and Delete the foreign key on the owner_id in the images table.<br><br>";
|
||||||
|
echo "<a href='http://www.justin-cook.com/wp/2006/05/09/how-to-remove-foreign-keys-in-mysql/'>How to remove foreign keys</a><br><br>";
|
||||||
|
echo "and finally execute this querry:<br><br>";
|
||||||
|
echo "ALTER TABLE images ADD CONSTRAINT foreign_images_owner_id FOREIGN KEY (owner_id) REFERENCES users(id) ON DELETE RESTRICT;<br><br>";
|
||||||
|
echo "if this is all sucesfull you are done!";
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (PDOException $e)
|
||||||
|
{
|
||||||
|
// FIXME: Make the error message user friendly
|
||||||
|
exit($e->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
?>
|
?>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user