from sqlalchemy import Column, create_engine, Integer
from sqlalchemy.orm import Session
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.dialects.postgresql import DOUBLE_PRECISION
from decimal import Decimal
Base = declarative_base()
class dream4_eta_15km_pm10(Base):
__tablename__='pm10_dream_rasters'
id = Column(Integer, primary_key=True)
# use float values
max_pm10=Column(DOUBLE_PRECISION)
# use Decimal values
mean_pm10=Column(DOUBLE_PRECISION(asdecimal=True))
def __repr__(self):
return "dream4_eta_15km_pm10(%r, %r)" % (self.max_pm10, self.mean_pm10)
engine = create_engine('postgresql://scott:tiger@localhost/test', echo=True)
Base.metadata.create_all(engine)
sess = Session(engine)
sess.add(dream4_eta_15km_pm10(max_pm10=76945.283959, mean_pm10=Decimal("7683.27835")))
sess.commit()
print sess.query(dream4_eta_15km_pm10).all()
> --
> You received this message because you are subscribed to the Google Groups "sqlalchemy" group.
> To post to this group, send email to sqlal...@googlegroups.com.
> To unsubscribe from this group, send email to sqlalchemy+...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en.
>
Assuming you ran the script I gave you and it produces the same errors, here is a psycopg2 script. Run it on your environment - if it fails, please report the issue to the psycopg2 list, including psycopg2 and postgresql version information, at: http://mail.postgresql.org/mj/mj_wwwusr/domain=postgresql.org?func=lists-long-full&extra=psycopg
import psycopg2
conn = psycopg2.connect(user='scott', password='tiger', host='localhost', database='test')
cursor = conn.cursor()
cursor.execute("""
CREATE TABLE double_prec_test (
double_value DOUBLE PRECISION
)
""")
cursor.execute("INSERT INTO double_prec_test VALUES (%(value)s)", {'value':7684.4933})
cursor.execute("SELECT * FROM double_prec_test")
print cursor.fetchall()
cursor.close()
conn.close()