Skip to content

Commit fbaa3da

Browse files
committed
Initial commit
1 parent 499ff6a commit fbaa3da

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed

selfoss_sqlite2mysql.php

+76
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
#!/usr/bin/php
2+
<?php
3+
4+
chdir(__DIR__);
5+
6+
if ($argc != 5) {
7+
echo 'Usage: '.$argv[0].' hostname database username password'."\n";
8+
exit;
9+
}
10+
11+
$sqlite_db = 'data/sqlite/selfoss.db';
12+
$mysql_hostname = $argv[1];
13+
$mysql_database = $argv[2];
14+
$mysql_username = $argv[3];
15+
$mysql_password = $argv[4];
16+
17+
$dbs = new SQLite3($sqlite_db);
18+
$dbm = new mysqli($mysql_hostname, $mysql_username, $mysql_password, $mysql_database);
19+
20+
if ($dbm->connect_errno) {
21+
printf("Connect failed: %s\n", $dbm->connect_error);
22+
exit;
23+
}
24+
25+
$dbs->query('SET NAMES utf8');
26+
27+
$count_items = 0;
28+
$count_sources = 0;
29+
$count_tags = 0;
30+
31+
$dbs_result = $dbs->query('SELECT * FROM items');
32+
33+
while($dbs_row = $dbs_result->fetchArray()) {
34+
$dbm->query(sprintf(
35+
"INSERT INTO items SET id = '%s', datetime = '%s', title = '%s', content = '%s', thumbnail = '%s', icon = '%s', unread = '%s', starred = '%s', source = '%s', uid = '%s', link = '%s'",
36+
$dbm->real_escape_string($dbs_row['id']),
37+
$dbm->real_escape_string($dbs_row['datetime']),
38+
$dbm->real_escape_string($dbs_row['title']),
39+
$dbm->real_escape_string($dbs_row['content']),
40+
$dbm->real_escape_string($dbs_row['thumbnail']),
41+
$dbm->real_escape_string($dbs_row['icon']),
42+
$dbm->real_escape_string($dbs_row['unread']),
43+
$dbm->real_escape_string($dbs_row['starred']),
44+
$dbm->real_escape_string($dbs_row['source']),
45+
$dbm->real_escape_string($dbs_row['uid']),
46+
$dbm->real_escape_string($dbs_row['link'])
47+
));
48+
echo 'Items: '.++$count_items."\n";
49+
}
50+
51+
$dbs_result = $dbs->query('SELECT * FROM sources');
52+
53+
while($dbs_row = $dbs_result->fetchArray()) {
54+
$dbm->query(sprintf(
55+
"INSERT INTO sources SET id = '%s', title = '%s', tags = '%s', spout = '%s', params = '%s', error = '%s', lastupdate = '%s'",
56+
$dbm->real_escape_string($dbs_row['id']),
57+
$dbm->real_escape_string($dbs_row['title']),
58+
$dbm->real_escape_string($dbs_row['tags']),
59+
$dbm->real_escape_string($dbs_row['spout']),
60+
$dbm->real_escape_string($dbs_row['params']),
61+
$dbm->real_escape_string($dbs_row['error']),
62+
$dbm->real_escape_string($dbs_row['lastupdate'])
63+
));
64+
echo 'Sources: '.++$count_sources."\n";
65+
}
66+
67+
$dbs_result = $dbs->query('SELECT * FROM tags');
68+
69+
while($dbs_row = $dbs_result->fetchArray()) {
70+
$dbm->query(sprintf(
71+
"INSERT INTO tags SET tag = '%s', color = '%s'",
72+
$dbm->real_escape_string($dbs_row['tag']),
73+
$dbm->real_escape_string($dbs_row['color'])
74+
));
75+
echo 'Tags: '.++$count_tags."\n";
76+
}

0 commit comments

Comments
 (0)