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

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -