|
|
from neo4j import GraphDatabase, basic_auth |
|
|
from graphdatascience import GraphDataScience |
|
|
import utils as u |
|
|
import argparse |
|
|
|
|
|
SOURCE_CSV = 'models_with_all_information.csv' |
|
|
NEO4J_URI = "bolt://localhost:7687" |
|
|
|
|
|
|
|
|
parser = argparse.ArgumentParser(description="Script pour peupler une base de données Neo4j avec des données sur des modèles.") |
|
|
parser.add_argument( |
|
|
'reset', |
|
|
type=str, |
|
|
choices=['true', 'false'], |
|
|
help="Spécifiez 'true' pour réinitialiser la base de données, 'false' pour continuer." |
|
|
) |
|
|
|
|
|
parser.add_argument( |
|
|
'neo4j_user', |
|
|
type=str, |
|
|
help="Nom de votre instance Neo4J" |
|
|
) |
|
|
|
|
|
parser.add_argument( |
|
|
'neo4j_password', |
|
|
type=str, |
|
|
help="Mot de passe de votre instance Neo4J" |
|
|
) |
|
|
|
|
|
args = parser.parse_args() |
|
|
|
|
|
|
|
|
RESET = args.reset.lower() == 'true' |
|
|
NEO4J_PASSWORD = args.neo4j_password |
|
|
NEO4J_USER = args.neo4j_user |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
driver = GraphDatabase.driver(NEO4J_URI, auth=basic_auth(NEO4J_USER, NEO4J_PASSWORD)) |
|
|
|
|
|
|
|
|
if RESET: |
|
|
u.reset_database(driver) |
|
|
processed_ids = set() |
|
|
print("Reset done") |
|
|
else: |
|
|
|
|
|
processed_ids = u.load_processed_ids() |
|
|
|
|
|
|
|
|
with driver.session() as session: |
|
|
session.run("CREATE INDEX IF NOT EXISTS FOR (m:Model) ON (m.name);") |
|
|
session.run("CREATE INDEX IF NOT EXISTS FOR (a:Author) ON (a.name);") |
|
|
session.run("CREATE INDEX IF NOT EXISTS FOR (d:Dataset) ON (d.name);") |
|
|
print("Indexes created.") |
|
|
|
|
|
|
|
|
u.insert_parallel('models_with_all_information.csv', driver, processed_ids) |
|
|
|
|
|
|
|
|
|
|
|
driver.close() |
|
|
print("\nScript finished. Neo4j driver connection closed.") |