首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用sqlalchemy创建mysql数据库

使用sqlalchemy创建mysql数据库
EN

Stack Overflow用户
提问于 2019-02-17 17:57:58
回答 1查看 2.9K关注 0票数 4

我正在尝试使用sqlalchemy创建一个mysql数据库。

我有一个flask web应用程序,其中包含一个sqlite数据库。我正在试着切换到mysql。我是sqlalchemy的新手,并且已经学会了如何通过sqlalchemy创建数据库。但是,这些数据库是sqlite数据库。我正在尝试使用sqlalchemy来创建一个mysql数据库,但在阅读了多篇文章后,我似乎仍然无法获得它。

我还安装了python-mysqldb

用于创建sqlite数据库的原始代码片段已成功创建。

代码语言:javascript
复制
Base = declarative_base()

class Categories(Base):
    __tablename__ = 'categories'
    id = Column(Integer, primary_key=True)
    name = Column(String, unique=True)
    image = Column(String)
    link = Column(String)
    description = Column(String)

if __name__ =='__main__':
    engine = create_engine('sqlite:///app/database/main.db', echo=True)
    Base.metadata.create_all(engine)

mysql尝试

代码语言:javascript
复制
if __name__ =='__main__':
    engine = create_engine('mysql://user:password@localhost/app/database/main.db', echo=True)
    Base.metadata.create_all(engine)

mysql第二次尝试

代码语言:javascript
复制
if __name__ =='__main__':
    engine = create_engine('mysql://user:password@localhost/app/database/main.db', echo=True)
    engine.execute("CREATE DATABASE main.db")
    engine.execute("USE main.db")

我一直收到的错误。

代码语言:javascript
复制
sqlalchemy.exc.OperationalError: (_mysql_exceptions.OperationalError) (1049, "Unknown database 'app/database/main.db'") (Background on this error at: http://sqlalche.me/e/e3q8)

我最好的猜测是,在使用mysql和sqlalchemy时,我显然遗漏了一些东西。

任何能给我指明正确方向的帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-17 18:54:04

a) mysql的正确DBURI语法为:

mysql://username:password@servername/databasename

b)必须先创建数据库databasename。因此,在运行Python之前,您应该使用命令行mysql .create_all()连接到数据库服务器,并执行CREATE DATABASE databasename语句来创建一个空数据库:

代码语言:javascript
复制
$ mysql -u username -p
... type password
> CREATE DATABASE databasename;

c)您现在应该能够运行Python代码在空数据库中创建表。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54732047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档