Using ForeignKey in Abstract Base Class (SQLAlchemy)

I was creating an abstract base class containing FK, like this : 1 2 3 class MyBase(Base): name = Column(String(30)) fk1 = Column(Integer, ForeignKey('')) but kept getting the error : 1 2 sqlalchemy.exc.InvalidRequestError: Columns with foreign keys to other columns must be declared as @declared_attr callables on declarative mixin classes. Reading thru the docs was not helpful because the example used for @declared_attr is somewhat different

KeePass on the Web (KeeWeb)

Why is this interesting to me ? Since LastPass was acquired. I switched to Dashlane, which seems good, but there is this nagging feeling that Dashlane might stop the free version, or something. I had used KeePass long time ago. But the Problem is “syncing” KeePass Web solves (in theory) this problem by supporting Dropbox syncing “out of the box”. All I really need is backup. If you are interested, you can download KeeWeb here

How to define Primary Composite Key in SQLAlchemy

When using fully declared table metadata,use the primary_key=True flag on those columns: 1 2 3 4 5 class Dummy(Base): __tablename__ = "dummy" pk1 = Column(Integer, primary_key=True) pk2 = Column(String, primary_key=True) This will create the following table (in postgres) : testdb=> \d dummy; Table "public.dummy" Column | Type | Modifiers -------+-------------------+----------------------------------------------------- pk1 | integer | not null default nextval('dummy_pk1_seq'::regclass) pk2 | character varying | not null Indexes: "dummy_pkey" PRIMARY KEY, btree (pk1, pk2) See SQLAlchemy documentation

Be Unreasonable

I came across this video by Robin Sharma (The author of great books like “The Monk who sold his Ferrari” and “The leader without title”) It starts with the following quote : The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man. George Bernard Shaw Robin goes on to suggest that you install 3 habits during the next 90 days, that set the tone for the next 12 months, so that 2016 can be your greatest year (Rather than a repeat of the last year)