I have been trying different methods to solve this problem below but I seem to always get the same error on my Windows. (Btw, I'm using the Anaconda terminal)
I have tried to execute many different solutions as rec by stack overflow forums but to no avail. Hahah apologies, I'm just starting out on this tutorial so i am quite clueless as to how to proceed.
Code
import csv
import os
from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker
engine = create_engine(os.getenv("DATABASE_URL"))
db = scoped_session(sessionmaker(bind=engine))
def main():
f = open("flights.csv")
reader = csv.reader(f)
for origin, destination, duration in reader:
db.execute("INSERT INTO flights (origin, destination, duration) VALUES (:origin, :destination, :duration)",
{"origin": origin, "destination": destination, "duration": duration})
print(f"Added flight from {origin} to {destination} lasting {duration} minutes.")
db.commit()
if __name__ == "__main__":
main()
Error Message
Traceback (most recent call last):
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\engine\base.py", line 2345, in _wrap_pool_connect
return fn()
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\pool\base.py", line 364, in connect
return _ConnectionFairy._checkout(self)
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\pool\base.py", line 778, in _checkout
fairy = _ConnectionRecord.checkout(pool)
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\pool\base.py", line 495, in checkout
rec = pool._do_get()
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\pool\impl.py", line 140, in _do_get
self._dec_overflow()
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\util\langhelpers.py", line 69, in __exit__
exc_value, with_traceback=exc_tb,
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\util\compat.py", line 178, in raise_
raise exception
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\pool\impl.py", line 137, in _do_get
return self._create_connection()
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\pool\base.py", line 309, in _create_connection
return _ConnectionRecord(self)
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\pool\base.py", line 440, in __init__
self.__connect(first_connect_check=True)
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\pool\base.py", line 661, in __connect
pool.logger.debug("Error on connect(): %s", e)
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\util\langhelpers.py", line 69, in __exit__
exc_value, with_traceback=exc_tb,
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\util\compat.py", line 178, in raise_
raise exception
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\pool\base.py", line 656, in __connect
connection = pool._invoke_creator(self)
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\engine\strategies.py", line 114, in connect
return dialect.connect(*cargs, **cparams)
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\engine\default.py", line 490, in connect
return self.dbapi.connect(*cargs, **cparams)
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\psycopg2\__init__.py", line 127, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: FATAL: password authentication failed for user "postgres"
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "import.py", line 20, in <module>
main()
File "import.py", line 15, in main
{"origin": origin, "destination": destination, "duration": duration}) # substitute values from CSV line into SQL command, as per this dict
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\orm\scoping.py", line 163, in do
return getattr(self.registry(), name)(*args, **kwargs)
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\orm\session.py", line 1291, in execute
return self._connection_for_bind(bind, close_with_result=True).execute(
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\orm\session.py", line 1147, in _connection_for_bind
engine, execution_options
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\orm\session.py", line 433, in _connection_for_bind
conn = bind._contextual_connect()
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\engine\base.py", line 2311, in _contextual_connect
self._wrap_pool_connect(self.pool.connect, None),
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\engine\base.py", line 2349, in _wrap_pool_connect
e, dialect, self
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\engine\base.py", line 1591, in _handle_dbapi_exception_noconnection
sqlalchemy_exception, with_traceback=exc_info[2], from_=e
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\util\compat.py", line 178, in raise_
raise exception
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\engine\base.py", line 2345, in _wrap_pool_connect
return fn()
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\pool\base.py", line 364, in connect
return _ConnectionFairy._checkout(self)
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\pool\base.py", line 778, in _checkout
fairy = _ConnectionRecord.checkout(pool)
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\pool\base.py", line 495, in checkout
rec = pool._do_get()
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\pool\impl.py", line 140, in _do_get
self._dec_overflow()
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\util\langhelpers.py", line 69, in __exit__
exc_value, with_traceback=exc_tb,
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\util\compat.py", line 178, in raise_
raise exception
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\pool\impl.py", line 137, in _do_get
return self._create_connection()
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\pool\base.py", line 309, in _create_connection
return _ConnectionRecord(self)
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\pool\base.py", line 440, in __init__
self.__connect(first_connect_check=True)
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\pool\base.py", line 661, in __connect
pool.logger.debug("Error on connect(): %s", e)
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\util\langhelpers.py", line 69, in __exit__
exc_value, with_traceback=exc_tb,
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\util\compat.py", line 178, in raise_
raise exception
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\pool\base.py", line 656, in __connect
connection = pool._invoke_creator(self)
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\engine\strategies.py", line 114, in connect
return dialect.connect(*cargs, **cparams)
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\sqlalchemy\engine\default.py", line 490, in connect
return self.dbapi.connect(*cargs, **cparams)
File "C:\Users\Lenovo\Anaconda3\lib\site-packages\psycopg2\__init__.py", line 127, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) FATAL: password authentication failed for user "postgres"
(Background on this error at: http://sqlalche.me/e/e3q8)