Guest User

MCVE for https://stackoverflow.com/q/47065679/450517

a guest
Nov 3rd, 2017
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.73 KB | None | 0 0
  1. from sqlalchemy import create_engine, Integer, String
  2. from sqlalchemy.ext.declarative import declarative_base
  3. from sqlalchemy.orm import sessionmaker, relationship
  4. from sqlalchemy.schema import Column, ForeignKey
  5.  
  6. Base = declarative_base()
  7.  
  8.  
  9. class User(Base):
  10.     __tablename__ = 'user'
  11.     ID = Column(Integer, primary_key=True)
  12.     name = Column(String(250), nullable=False)
  13.  
  14.  
  15. class Categories(Base):
  16.     __tablename__ = 'categories'
  17.     ID = Column(Integer, primary_key=True)
  18.     name = Column(String(250), nullable=False)
  19.  
  20.  
  21. class Item(Base):
  22.     __tablename__ = 'item'
  23.     ID = Column(Integer, primary_key=True)
  24.     name = Column(String(250), nullable=False)
  25.     description = Column(String(250))
  26.     price = Column(String(8))
  27.     category_ID = Column(Integer, ForeignKey('categories.ID'))
  28.     category = relationship(Categories)
  29.     user_ID = Column(Integer, ForeignKey('user.ID'))
  30.     user = relationship(User)
  31.  
  32.  
  33. engine = create_engine('sqlite:///:memory:', echo=True)
  34. Base.metadata.create_all(engine)
  35.  
  36. Session = sessionmaker(bind=engine)
  37. session = Session()
  38.  
  39. i = ('Maelstrom', '2800',
  40.      'A hammer forged for the gods themselves, '
  41.      'Maelstrom allows its user to harness the '
  42.      'power of lightning.',
  43.      'Attack Speed', "guberland")
  44.  
  45. db_item = Item(
  46.     name=i[0], price=i[1], description=i[2], category_ID=i[3],
  47.     user_ID=i[4])
  48.  
  49. session.add(db_item)
  50. session.commit()
  51.  
  52. # doesn't fail with sqlite !???
  53. # but creates nonsensical data:
  54. #
  55. # sqlite> select * from item;
  56. # 1|Maelstrom|A hammer forged for the gods themselves, Maelstrom allows \
  57. #   its user to harness the power of lightning.|2800|Attack Speed|guberland
  58. # sqlite> select * from user;
  59. # sqlite> select * from categories;
  60. # sqlite>
  61. #
Add Comment
Please, Sign In to add comment