phpwind 表:
pw_members 用户信息主表 (取用户名,密码,邮箱)
pw_memberdata 用户基本信息(取发帖数)
取发帖大于0的用户信息
SELECT uid
,username
,email
,regdate
FROM pw_members t JOIN pw_memberdata m ON t.uid = m.uid WHERE m.postnum > 0 AND t.uid = m.uid;
pw_threads 帖子基本信息表 (取发帖人,标题,时间)
pw_tmsgs 帖子内容
pw_posts 回复帖信息表
查询uid=1的主题贴,及帖子内容
SELECT * FROM pw_threads t JOIN pw_tmsgs m ON t.tid = m.tid WHERE t.authorid = 1 AND t.tid = m.tid
查询所有主题的tid,发帖人,发帖人ID,帖子标题,发帖日期,帖子内容
SELECT t.tid,t.author,t.authorid,t.subject
,t.postdate,m.content FROM pw_threads t JOIN pw_tmsgs m ON t.tid = m.tid WHERE t.tid = m.tid
查询回复,按时间排序
SELECT pid,tid,author,authorid,FROM_UNIXTIME(postdate, '%Y/%m/%d %T') AS postdate,subject,content FROM sims2bbs
.pw_posts
ORDER BY postdate
导出csv文件,用excel打开
如果乱码,编码需要修改为gb_2318-80
( int( datetime(2022,11,11,00,00).timestamp() ) << 16 ) * 1000
正确的计算结果为 109322226892800000。
在excel中把发帖日期转换为Mastodon ID
=(F2-DATE(1970,1,1))864001000*2^16
生成一个24小时制随机时间,精确到毫秒:
=TIME(RANDBETWEEN(0,23),RANDBETWEEN(0,59),RANDBETWEEN(0,59))+RANDBETWEEN(0,999)/86400000
=B2&""
把数字转换成文本,复制后粘贴,值
mastodon 数据表
accounts 本地联邦用户信息
users 本地注册用户信息
account_stats 用户发文信息
statuses 用户发文信息表
先导入accounts表,再导入users及其他
users表中邮箱不能重复
通过用户account_id进行关联
account_id要存储为文本格式
表中涉及到时间的地方只需要精确到日期
了解数据库结构以后理论上可以将任何程序数据转换到Mastodon中, 但是我在转换一半的时候还是放弃了, 毕竟上古时期的论坛和新兴Mastodon始终显得不那么契合, 所以还是来一个全新的开始吧.
以上随手记录, 希望能帮到需要的人.