python - InvalidRequestError: VARCHAR requires a length on dialect mysql -
i trying create remote database using mysql on ubuntu machine running 12.04.
it has root user remote login enabled , no password.i have started server.
output of
sudo netstat -tap | grep mysql
shows
tcp 0 0 localhost:mysql *:* listen 13246/mysqld
i have created database called nwtopology using (as mentioned root doesn't have password yet.)
create database nwtopology grant privileges on *.* root@192.168.129.221 flush privileges;
from client machine runs ubuntu 12.04 use python script connect remote mysql database using sqlalchemy.
from pox.core import core import pox.openflow.libopenflow_01 of import re import datetime import time sqlalchemy import create_engine, foreignkey sqlalchemy import column, date, integer, string sqlalchemy.ext.declarative import declarative_base sqlalchemy.orm import relationship, backref sqlalchemy import create_engine sqlalchemy.orm import sessionmaker sqlalchemy.sql.expression import exists log = core.getlogger() engine = create_engine('mysql://root@192.168.129.139/nwtopology', echo=false) base = declarative_base() session = sessionmaker(bind=engine) session = session() class sourcetoport(base): """""" __tablename__ = 'source_to_port' id = column(integer, primary_key=true) port_no = column(integer) src_address = column(string,index=true) #----------------------------------------- def __init__(self, src_address,port_no): """""" self.src_address = src_address self.port_no = port_no #create tables base.metadata.create_all(engine)
the last line
base.metadata.create_all(engine)
returns error
file "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/compiler.py", line 1699, in visit_string return self.visit_varchar(type_) file "/usr/lib/python2.7/dist-packages/sqlalchemy/dialects/mysql/base.py", line 1654, in visit_varchar self.dialect.name) invalidrequesterror: varchar requires length on dialect mysql
what mean? how can set varchar length on mysql? new sqlalchemy , mysql.
add length string
column:
src_address = column(string(16), index=true)
Comments
Post a Comment