Я пытаюсь сделать окончательный проект «турнира» во введении в курс реляционных баз данных по udacity. Вот ссылка на описание проекта:psycopg2.ProgrammingError: отношения «matches» не существует
https://docs.google.com/document/d/16IgOm4XprTaKxAa8w02y028oBECOoB1EI1ReddADEeY/pub?embedded=true
У меня есть файл под названием tournament.sql, в котором база данных «турнир» и «матчи» две таблицы и «игроков» определены:
DROP DATABASE IF EXISTS tournament;
CREATE DATABASE tournament;
CREATE TABLE IF NOT EXISTS matches (
id SERIAL PRIMARY KEY,
player1 integer references players (id),
player2 integer references players (id)
);
CREATE TABLE IF NOT EXISTS players (
id SERIAL PRIMARY KEY,
name varchar(40)
);
I также определенные органы двух функций deleteMatches и deletePlayers в tournament.py файле:
import psycopg2
def connect():
"""Connect to the PostgreSQL database. Returns a database connection."""
return psycopg2.connect("dbname=tournament")
def deleteMatches():
"""Remove all the match records from the database."""
conn = connect()
c = conn.cursor()
c.execute("TRUNCATE TABLE matches;")
conn.commit()
conn.close()
def deletePlayers():
"""Remove all the player records from the database."""
conn = connect()
c = conn.cursor()
c.execute("TRUNCATE TABLE players;")
conn.commit()
conn.close()
Там еще один питон файл предопределены/предварительно созданный автором всего курса «tournament_test.py», который может быть выполнен, чтобы проверить, работают ли все необходимые функции в турнире.py работают/выполняют свою работу. Этот файл «tournament_test.py» выполняется в виртуальной машине из командной строки, так и в моем случае производит следующие ошибки:
[email protected]:/vagrant/tournament$ python tournament_test.py
Traceback (most recent call last):
File "tournament_test.py", line 151, in
testCount()
File "tournament_test.py", line 17, in testCount
deleteMatches()
File "/vagrant/tournament/tournament.py", line 16, in deleteMatches
c.execute("TRUNCATE TABLE matches;")
psycopg2.ProgrammingError: relation "matches" does not exist
Кто-нибудь знает, что случилось с моим кодом? Я начинаю терять терпение. Я потратил несколько часов, пытаясь понять, что случилось, и я могу найти любую информацию, которая была бы полезной. Этот курс настолько плох, неряшлив и непрофессионален. Я просто не могу найти правильные слова, чтобы выразить свое разочарование.
Загрузил ли этот файл SQL в базу данных? Как? –
Я не понимаю вопроса. Что означает загрузить файл SQL в базу данных? Какую базу данных вы имеете в виду? Как мне загружать sql-файлы в базы данных? Вы имеете в виду это: «из турнирного импорта *», который является верхней частью предопределенного файла python: турнир_test.py? –
Хорошо, что вы ожидаете от файла самостоятельно Что делать? Все это очень хорошо написало файл команд SQL, но если вы фактически не отдаете их в базу данных, вы могли бы также написать детские рифмы. Ваша ошибка говорит вам, что вы не создали таблицу, что верно, если вы никогда не запускали этот файл. –