Luke Murphy
6 years ago
2 changed files with 0 additions and 125 deletions
@ -1,76 +0,0 @@ |
|||||
#!/usr/bin/env python |
|
||||
|
|
||||
import argparse |
|
||||
import functools |
|
||||
import logging |
|
||||
import pyrqlite.dbapi2 as dbapi2 |
|
||||
#import sqlite3 as dbapi2 |
|
||||
|
|
||||
from sqlalchemy.ext.declarative import declarative_base |
|
||||
from sqlalchemy.orm import sessionmaker, relationship |
|
||||
from sqlalchemy.orm import Session |
|
||||
from sqlalchemy import Table, Column, Integer, String, ForeignKey, Sequence, create_engine |
|
||||
from sqlalchemy.dialects import registry |
|
||||
registry.register("rqlite.pyrqlite", "sqlalchemy_rqlite.pyrqlite", "dialect") |
|
||||
|
|
||||
Base = declarative_base() |
|
||||
|
|
||||
books_authors = Table( |
|
||||
"books_authors", |
|
||||
Base.metadata, |
|
||||
Column("book", Integer, ForeignKey("books.id")), |
|
||||
Column("author", Integer, ForeignKey("authors.id")), |
|
||||
) |
|
||||
|
|
||||
class Book(Base): |
|
||||
__tablename__ = 'books' |
|
||||
id = Column(Integer, primary_key=True) |
|
||||
title = Column("title", String(50), nullable=False) |
|
||||
authors = relationship( |
|
||||
"Author", |
|
||||
backref="books", |
|
||||
secondary=books_authors |
|
||||
) |
|
||||
|
|
||||
def __init__(self, title): |
|
||||
self.title = title |
|
||||
|
|
||||
class Author(Base): |
|
||||
__tablename__ = "authors" |
|
||||
id = Column("id", Integer, Sequence("authors_id_seq"), primary_key=True) |
|
||||
name = Column("name", String(50), nullable=False) |
|
||||
|
|
||||
def __init__(self, title): |
|
||||
self.name = name |
|
||||
|
|
||||
def main(): |
|
||||
parser = argparse.ArgumentParser() |
|
||||
parser.add_argument('-v', '--verbose', action='store_true', default=False) |
|
||||
args = parser.parse_args() |
|
||||
|
|
||||
if args.verbose: |
|
||||
logging.basicConfig() |
|
||||
logging.getLogger().setLevel(logging.DEBUG) |
|
||||
|
|
||||
engine = create_engine('rqlite+pyrqlite://localhost:4001/', echo=args.verbose) |
|
||||
|
|
||||
Base.metadata.create_all(engine) |
|
||||
session = Session(engine) |
|
||||
|
|
||||
#insert |
|
||||
# for i in range(1): |
|
||||
# book = Book("book about dbs2") |
|
||||
# author = Author("footurist") |
|
||||
# book.authors.append(author) |
|
||||
# session.add(book) |
|
||||
# session.commit() |
|
||||
|
|
||||
#delete |
|
||||
desired_book = session.query(Book).filter_by(id=3).delete() |
|
||||
#desired_author = session.query(Author).filter_by(id=2).first() |
|
||||
#desired_book.authors.clear() |
|
||||
#desired_book.authors.append(desired_author) |
|
||||
session.commit() |
|
||||
|
|
||||
if __name__ == '__main__': |
|
||||
main() |
|
@ -1,49 +0,0 @@ |
|||||
from sqlalchemy import create_engine |
|
||||
from sqlalchemy import Table, Column, Integer, String, ForeignKey, Sequence |
|
||||
from sqlalchemy.ext.declarative import declarative_base |
|
||||
from sqlalchemy.orm import sessionmaker, relationship |
|
||||
|
|
||||
|
|
||||
Base = declarative_base() |
|
||||
|
|
||||
|
|
||||
teachers_lessons = Table( |
|
||||
"teachers_lessons", |
|
||||
Base.metadata, |
|
||||
Column("fk_teacher", Integer, ForeignKey("teachers.id")), |
|
||||
Column("fk_lesson", Integer, ForeignKey("lessons.id")), |
|
||||
) |
|
||||
|
|
||||
|
|
||||
class Teacher(Base): |
|
||||
__tablename__ = "teachers" |
|
||||
|
|
||||
id = Column("id", Integer, Sequence("teachers_id_seq"), primary_key=True) |
|
||||
name = Column("name", String(50), nullable=False) |
|
||||
|
|
||||
lessons = relationship( |
|
||||
"Lesson", |
|
||||
backref="teachers", |
|
||||
secondary=teachers_lessons |
|
||||
) |
|
||||
|
|
||||
|
|
||||
class Lesson(Base): |
|
||||
__tablename__ = "lessons" |
|
||||
|
|
||||
id = Column("id", Integer, Sequence("lessons_id_seq"), primary_key=True) |
|
||||
name = Column("name", String(50), nullable=False) |
|
||||
|
|
||||
|
|
||||
engine = create_engine('rqlite+pyrqlite://localhost:4001/', echo=True) |
|
||||
Base.metadata.create_all(engine) |
|
||||
Session = sessionmaker(bind=engine) |
|
||||
|
|
||||
|
|
||||
if __name__ == "__main__": |
|
||||
|
|
||||
t2 = s.query(Teacher).filter_by(name='NEWNEW').first() |
|
||||
t2.lessons.clear() |
|
||||
s.commit() |
|
||||
|
|
||||
|
|
Loading…
Reference in new issue