from sqlalchemy import create_engine,func,Column, Integer, String, FLOAT
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
class dy_author:
base=declarative_base()
base2=declarative_base()
class table2(base):
__tablename__ = 'old'
id = Column(String, primary_key=True)
author= Column(String)
title = Column(String)
url = Column(String)
ctime = Column(Integer)
like = Column(Integer)
pinglun = Column(Integer)
share = Column(Integer)
class table2(base2):
__tablename__ = 'a'
id = Column(String, primary_key=True)
author= Column(String)
title = Column(String)
url = Column(String)
ctime = Column(Integer)
like = Column(Integer)
pinglun = Column(Integer)
share = Column(Integer)
loc=Column(String)
update=Column(String)
van=Column(String)
def __init__(self) -> None:
db_file='{}{}\\{}'.format('sqlite:///',r'X:\库\文档\py_all\database','author2.db')
self.engine = create_engine(db_file)
self.base.metadata.create_all(self.engine)
db_file='{}{}\\{}'.format('sqlite:///',r'X:\库\文档\py_all\database','dydb.db')
self.engine2 = create_engine(db_file)
self.base2.metadata.create_all(self.engine2)
self.move()
print(self.db_sta())
def move(self):
old=self.acquire_session()
new=self.acquire_session(old=False)
all=old.query(self.table2).all()
for itema in all:
item=self.table2()
item.id,item.author,item.title, item.url,item.ctime, item.share,item.like,item.pinglun=itema.id,itema.author,itema.title, itema.url,itema.ctime, itema.share,itema.like,itema.pinglun
new.add(item)
new.commit()
pass
# def
def acquire_session(self,old=True):
if old:
Session = sessionmaker(bind=self.engine)
session = Session()
else:
Session = sessionmaker(bind=self.engine2)
session = Session()
return session
def db_sta(self):
session=self.acquire_session(old=False)
full=session.query(func.count(self.table2.ctime)).all()[0][0]
all=session.query(func.count(self.table2.id)).all()[0][0]
msg='{}/{}'.format(full,all)
return msg
dy_author()