[{"data":1,"prerenderedAt":681},["ShallowReactive",2],{"navigation_docs_en":3,"-en-installation-tale-repos":241,"-en-installation-tale-repos-surround":677},[4,17,42,206,232],{"title":5,"redirect":6,"path":7,"stem":8,"children":9,"page":16},"Introduction","\u002Fen\u002Fintroduction\u002Fintroduction","\u002Fen\u002Fintroduction","en\u002F1.introduction",[10,12],{"title":5,"path":6,"stem":11},"en\u002F1.introduction\u002F1.introduction",{"title":13,"path":14,"stem":15},"Prerequisites","\u002Fen\u002Fintroduction\u002Fprerequisites","en\u002F1.introduction\u002F2.prerequisites",false,{"title":18,"redirect":19,"path":20,"stem":21,"children":22,"page":16},"Installation","\u002Fen\u002Finstallation\u002Fsetup","\u002Fen\u002Finstallation","en\u002F2.installation",[23,26,30,34,38],{"title":24,"path":19,"stem":25},"Machine set-up","en\u002F2.installation\u002F1.setup",{"title":27,"path":28,"stem":29},"A Tale of Two Repos","\u002Fen\u002Finstallation\u002Ftale-repos","en\u002F2.installation\u002F2.tale-repos",{"title":31,"path":32,"stem":33},"Database connection","\u002Fen\u002Finstallation\u002Fdbt-profile","en\u002F2.installation\u002F3.dbt-profile",{"title":35,"path":36,"stem":37},"Smoke-testing","\u002Fen\u002Finstallation\u002Fsmoke-testing","en\u002F2.installation\u002F4.smoke-testing",{"title":39,"path":40,"stem":41},"What now ?","\u002Fen\u002Finstallation\u002Fwhat-now","en\u002F2.installation\u002F5.what-now",{"title":43,"path":44,"stem":45,"children":46,"page":16},"Users Guide","\u002Fen\u002Fusing","en\u002F3.using",[47,50,54,88,188,202],{"title":5,"path":48,"stem":49},"\u002Fen\u002Fusing\u002Fintroduction","en\u002F3.using\u002F1.introduction",{"title":51,"path":52,"stem":53},"Running the ETL","\u002Fen\u002Fusing\u002Frunning","en\u002F3.using\u002F2.running",{"title":55,"path":56,"stem":57,"children":58,"page":16},"Configuration","\u002Fen\u002Fusing\u002Fconfiguration","en\u002F3.using\u002F3.configuration",[59,72,76,80,84],{"title":60,"path":61,"stem":62,"children":63,"page":16},"Architecture","\u002Fen\u002Fusing\u002Fconfiguration\u002Farchitecture","en\u002F3.using\u002F3.configuration\u002F1.architecture",[64,68],{"title":65,"path":66,"stem":67},"Overview","\u002Fen\u002Fusing\u002Fconfiguration\u002Farchitecture\u002Foverview","en\u002F3.using\u002F3.configuration\u002F1.architecture\u002F1.overview",{"title":69,"path":70,"stem":71},"Marts and reporting layer","\u002Fen\u002Fusing\u002Fconfiguration\u002Farchitecture\u002Fmarts-reporting","en\u002F3.using\u002F3.configuration\u002F1.architecture\u002F2.marts-reporting",{"title":73,"path":74,"stem":75},"Linking the databases","\u002Fen\u002Fusing\u002Fconfiguration\u002Fdatabases","en\u002F3.using\u002F3.configuration\u002F2.databases",{"title":77,"path":78,"stem":79},"Adapters and seeds","\u002Fen\u002Fusing\u002Fconfiguration\u002Fadapts-seeds","en\u002F3.using\u002F3.configuration\u002F3.adapts-seeds",{"title":81,"path":82,"stem":83},"Enabling a resource","\u002Fen\u002Fusing\u002Fconfiguration\u002Fenabling","en\u002F3.using\u002F3.configuration\u002F4.enabling",{"title":85,"path":86,"stem":87},"Overriding","\u002Fen\u002Fusing\u002Fconfiguration\u002Foverriding","en\u002F3.using\u002F3.configuration\u002F5.overriding",{"title":89,"redirect":90,"path":91,"stem":92,"children":93,"page":16},"Dashboards","\u002Fen\u002Fusing\u002F","\u002Fen\u002Fusing\u002Fdashboards","en\u002F3.using\u002F4.dashboards",[94,97,126,167,176,184],{"title":5,"path":95,"stem":96},"\u002Fen\u002Fusing\u002Fdashboards\u002Fintroduction","en\u002F3.using\u002F4.dashboards\u002F1.introduction",{"title":98,"redirect":99,"path":99,"stem":100,"children":101,"page":16},"Human resources","\u002Fen\u002Fusing\u002Fdashboards\u002Fhr","en\u002F3.using\u002F4.dashboards\u002F2. hr",[102,106,110,114,118,122],{"title":103,"path":104,"stem":105},"Employees leaves","\u002Fen\u002Fusing\u002Fdashboards\u002Fhr\u002Femp_conge","en\u002F3.using\u002F4.dashboards\u002F2. hr\u002F1.emp_conge",{"title":107,"path":108,"stem":109},"Active employees","\u002Fen\u002Fusing\u002Fdashboards\u002Fhr\u002Fempl_actif","en\u002F3.using\u002F4.dashboards\u002F2. hr\u002F2.empl_actif",{"title":111,"path":112,"stem":113},"Retirement","\u002Fen\u002Fusing\u002Fdashboards\u002Fhr\u002Fretirement","en\u002F3.using\u002F4.dashboards\u002F2. hr\u002F3.retirement",{"title":115,"path":116,"stem":117},"Efficacité","\u002Fen\u002Fusing\u002Fdashboards\u002Fhr\u002Fefficacite","en\u002F3.using\u002F4.dashboards\u002F2. hr\u002F4.efficacite",{"title":119,"path":120,"stem":121},"Absences des employé(e)s","\u002Fen\u002Fusing\u002Fdashboards\u002Fhr\u002Femp_abs","en\u002F3.using\u002F4.dashboards\u002F2. hr\u002F5.emp_abs",{"title":123,"path":124,"stem":125},"Resignation","\u002Fen\u002Fusing\u002Fdashboards\u002Fhr\u002Fresignation","en\u002F3.using\u002F4.dashboards\u002F2. hr\u002F6.resignation",{"title":127,"redirect":128,"path":128,"stem":129,"children":130,"page":16},"Educational service","\u002Fen\u002Fusing\u002Fdashboards\u002Feduc-serv","en\u002F3.using\u002F4.dashboards\u002F3.educ-serv",[131,135,139,143,147,151,155,159,163],{"title":132,"path":133,"stem":134},"Res epreuves","\u002Fen\u002Fusing\u002Fdashboards\u002Feduc-serv\u002Fres_epreuves","en\u002F3.using\u002F4.dashboards\u002F3.educ-serv\u002F1.res_epreuves",{"title":136,"path":137,"stem":138},"Students results monitoring","\u002Fen\u002Fusing\u002Fdashboards\u002Feduc-serv\u002Fsuivi_resultats","en\u002F3.using\u002F4.dashboards\u002F3.educ-serv\u002F2.suivi_resultats",{"title":140,"path":141,"stem":142},"Students headcount","\u002Fen\u002Fusing\u002Fdashboards\u002Feduc-serv\u002Feffectif_css","en\u002F3.using\u002F4.dashboards\u002F3.educ-serv\u002F3.effectif_css",{"title":144,"path":145,"stem":146},"Students absenteeism","\u002Fen\u002Fusing\u002Fdashboards\u002Feduc-serv\u002Fchronic_absenteeism","en\u002F3.using\u002F4.dashboards\u002F3.educ-serv\u002F4.chronic_absenteeism",{"title":148,"path":149,"stem":150},"Academic results","\u002Fen\u002Fusing\u002Fdashboards\u002Feduc-serv\u002Fres_scolaires","en\u002F3.using\u002F4.dashboards\u002F3.educ-serv\u002F5.res_scolaires",{"title":152,"path":153,"stem":154},"Predictive modelling - aggregated","\u002Fen\u002Fusing\u002Fdashboards\u002Feduc-serv\u002Fpredictive-aggregated","en\u002F3.using\u002F4.dashboards\u002F3.educ-serv\u002F6.predictive-aggregated",{"title":156,"path":157,"stem":158},"PEVR","\u002Fen\u002Fusing\u002Fdashboards\u002Feduc-serv\u002Fpevr","en\u002F3.using\u002F4.dashboards\u002F3.educ-serv\u002F7.pevr",{"title":160,"path":161,"stem":162},"Absenteeism","\u002Fen\u002Fusing\u002Fdashboards\u002Feduc-serv\u002Fabsenteeism","en\u002F3.using\u002F4.dashboards\u002F3.educ-serv\u002F8.absenteeism",{"title":164,"path":165,"stem":166},"Diplôme","\u002Fen\u002Fusing\u002Fdashboards\u002Feduc-serv\u002Fdiplome","en\u002F3.using\u002F4.dashboards\u002F3.educ-serv\u002F9.diplome",{"title":168,"redirect":169,"path":169,"stem":170,"children":171,"page":16},"School organisation","\u002Fen\u002Fusing\u002Fdashboards\u002Fschool-org","en\u002F3.using\u002F4.dashboards\u002F4.school-org",[172],{"title":173,"path":174,"stem":175},"Anomalies","\u002Fen\u002Fusing\u002Fdashboards\u002Fschool-org\u002Fanomalies","en\u002F3.using\u002F4.dashboards\u002F4.school-org\u002F1.anomalies",{"title":177,"path":178,"stem":179,"children":180,"page":16},"DirectionGenerale","\u002Fen\u002Fusing\u002Fdashboards\u002Fdirection_generale","en\u002F3.using\u002F4.dashboards\u002F5.direction_generale",[181],{"title":156,"path":182,"stem":183},"\u002Fen\u002Fusing\u002Fdashboards\u002Fdirection_generale\u002Fpevr","en\u002F3.using\u002F4.dashboards\u002F5.direction_generale\u002F1.pevr",{"title":185,"path":186,"stem":187},"Row Level Security","\u002Fen\u002Fusing\u002Fdashboards\u002Frls","en\u002F3.using\u002F4.dashboards\u002F5.rls",{"title":189,"redirect":90,"path":190,"stem":191,"children":192,"page":16},"Data marts","\u002Fen\u002Fusing\u002Fmarts","en\u002F3.using\u002F6.marts",[193,196,199],{"title":5,"path":194,"stem":195},"\u002Fen\u002Fusing\u002Fmarts\u002Fmarts","en\u002F3.using\u002F6.marts\u002F1.marts",{"title":127,"path":197,"stem":198},"\u002Fen\u002Fusing\u002Fmarts\u002Feducational-service","en\u002F3.using\u002F6.marts\u002F2.educational-service",{"title":98,"path":200,"stem":201},"\u002Fen\u002Fusing\u002Fmarts\u002Fhuman-resources","en\u002F3.using\u002F6.marts\u002F3.human-resources",{"title":203,"path":204,"stem":205},"Production checklist","\u002Fen\u002Fusing\u002Fproduction","en\u002F3.using\u002F7.production",{"title":207,"redirect":208,"path":209,"stem":210,"children":211,"page":16},"Developers Guide","\u002Fen\u002Fcontributing\u002Fgetting-started","\u002Fen\u002Fcontributing","en\u002F4.contributing",[212,215,223],{"title":213,"path":208,"stem":214},"Getting Started","en\u002F4.contributing\u002F1.getting-started",{"title":216,"redirect":217,"path":218,"stem":219,"children":220,"page":16},"Conventions","\u002Fen\u002Fcontributing\u002Fconventions\u002Fgetting-started","\u002Fen\u002Fcontributing\u002Fconventions","en\u002F4.contributing\u002F2.conventions",[221],{"title":213,"path":217,"stem":222},"en\u002F4.contributing\u002F2.conventions\u002F1.getting-started",{"title":224,"path":225,"stem":226,"children":227,"page":16},"Docs Ref","\u002Fen\u002Fcontributing\u002Fdocs","en\u002F4.contributing\u002F99.docs",[228],{"title":229,"path":230,"stem":231},"Components","\u002Fen\u002Fcontributing\u002Fdocs\u002Fcomponents","en\u002F4.contributing\u002F99.docs\u002F1.components",{"title":233,"redirect":6,"path":234,"stem":235,"children":236,"page":16},"Migrations","\u002Fen\u002Fmigrations","en\u002F5.migrations",[237],{"title":238,"path":239,"stem":240},"V0.17 -> V0.18","\u002Fen\u002Fmigrations\u002Fv0.17_to_v0.18","en\u002F5.migrations\u002F1.v0.17_to_v0.18",{"id":242,"title":27,"body":243,"description":416,"extension":671,"links":672,"meta":673,"navigation":674,"path":28,"seo":675,"stem":29,"__hash__":676},"docs_en\u002Fen\u002F2.installation\u002F2.tale-repos.md",{"type":244,"value":245,"toc":668},"minimark",[246,251,290,312,321,335,345,349,360,387,392,403,410,435,441,456,466,515,526,546,552,607,616,620,623,655,658,664],[247,248,250],"h1",{"id":249},"two-repos-one-goal","Two repos, one goal !",[252,253,254,263],"blockquote",{},[255,256,257,258,262],"p",{},"When I was a child, my mother used to tell nice bedtime stories. My favorite one was the ",[259,260,261],"strong",{},"The Tale of Two Repos",". It goes like this :",[255,264,265,266,270,271,273,274,277,278,280,281,283,284,286,287,289],{},"\"Once upon a time, in the CdeP, a little ",[267,268,269],"code",{},"core.dashboards_store"," repo was born. The repo tried very hard to provide ETLs for all the school boards at once. But the school boards were many and the SQL capabilities to retrofit itself to a school board's context were few. So the ",[267,272,269],{}," repo decided to split itself into many little repos, one for each school board. And the ",[267,275,276],{},"cssXX.dashboards_store"," repo was born. And the ",[267,279,276],{}," repo was granted the power to override anything from ",[267,282,269],{},". And the ",[267,285,269],{}," repo was happy. And the ",[267,288,276],{}," repo was happy. And the CdeP was happy. And they all merged develop into master happily ever after.\"",[255,291,292,293,295,296,298,299,301,302,304,305,308,309],{},"The moral of the story is that the ",[267,294,269],{}," repo is the parent repo of all of the ",[267,297,276],{}," repos. The ",[267,300,269],{}," repo contains all the ETLs that are common to all of the CSS. The ",[267,303,276],{}," repo contains everything that is ",[259,306,307],{},"specific"," to cssXX, ",[259,310,311],{},"including, if needed, some SQL files overriding the ones in the core.",[255,313,314,315,317,318,320],{},"If you have already been exposed to object-oriented programming, the ",[267,316,269],{}," repo is the parent class providing overridable methods, and the ",[267,319,276],{}," repo is the child class that might want to override some of the parent's methods.",[322,323,325,326,328,329,331,332,334],"alert",{"type":324},"info","You will ALWAYS need two repos to work with ",[267,327,269],{},": the ",[267,330,269],{}," repo containing everything that is shared between school boards, and your own custom ",[267,333,276],{}," repo implementing what can't be shared, such as the way to identify students enrolled in an adapted program.",[322,336,338,339,341,342,344],{"type":337},"warning","When integrating the Store into your school board, all modifications you make (overriding, enabling, implementing an adapter, populating a seed) should take place from inside the ",[267,340,276],{}," repo. The ",[267,343,269],{}," repo should never be modified as it is shared between all school boards.",[247,346,348],{"id":347},"cloning-the-repo","Cloning the repo",[322,350,351,352,355,356,359],{"type":337},"The two repos are to be cloned in the same directory, the ",[267,353,354],{},"\u003Cworking directory>"," of your choice. If not, you will have to change the ",[267,357,358],{},"cssXX.dashboards_store\u002Fpackages.yaml"," to reflect the new path.",[322,361,363,364,367,368,375,376,381,382],{"type":362},"danger","You will need to create a ",[259,365,366],{},"GitHub"," account and add your SSH key to your account. If you don't have one, you can follow ",[369,370,374],"a",{"href":371,"rel":372},"https:\u002F\u002Fdocs.github.com\u002Fen\u002Fgithub\u002Fauthenticating-to-github\u002Fconnecting-to-github-with-ssh",[373],"nofollow","this guide"," to create one. Make sure to follow the Linux instructions if you are using either WSL2 or a Linux server. Don't forget to add your SSH key as explained here: ",[369,377,380],{"href":378,"rel":379},"https:\u002F\u002Fdocs.github.com\u002Fen\u002Fgithub\u002Fauthenticating-to-github\u002Fadding-a-new-ssh-key-to-your-github-account",[373],"Adding a new SSH key to your GitHub account",". If you don't know how to create an SSH key with Ubuntu, check here: ",[369,383,386],{"href":384,"rel":385},"https:\u002F\u002Fwww.ricmedia.com\u002Ftutorials\u002Fhow-to-set-up-ssh-keys-on-ubuntu-22-04",[373],"Generating a new SSH key",[388,389,391],"h2",{"id":390},"bootstrapping-a-working-dashboards-store","Bootstrapping a working Dashboards Store",[322,393,394,395,398,399,402],{"type":337},"In order to clone the repo through SSH, you will need a properly set-up ",[259,396,397],{},"GitHub account",". Your local public key must be added to your GitHub account. If you don't have one, you can follow ",[369,400,374],{"href":371,"rel":401},[373]," to create one. Make sure to follow the Linux instructions if you are using either WSL2 or Linux server.",[404,405,406],"ol",{},[407,408,409],"li",{},"Start by cloning the Core: (You'll need a properly set up GitHub account with an SSH key).",[411,412,417],"pre",{"className":413,"code":414,"language":415,"meta":416,"style":416},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","git clone git@github.com:Sciance-Inc\u002Fcore.dashboards_store.git\n","bash","",[267,418,419],{"__ignoreMap":416},[420,421,424,428,432],"span",{"class":422,"line":423},"line",1,[420,425,427],{"class":426},"sBMFI","git",[420,429,431],{"class":430},"sfazB"," clone",[420,433,434],{"class":430}," git@github.com:Sciance-Inc\u002Fcore.dashboards_store.git\n",[404,436,438],{"start":437},2,[407,439,440],{},"Check out the master branch to get the latest template revision",[411,442,444],{"className":413,"code":443,"language":415,"meta":416,"style":416},"git checkout master\n",[267,445,446],{"__ignoreMap":416},[420,447,448,450,453],{"class":422,"line":423},[420,449,427],{"class":426},[420,451,452],{"class":430}," checkout",[420,454,455],{"class":430}," master\n",[404,457,459],{"start":458},3,[407,460,461,462,465],{},"Create a ",[267,463,464],{},"Poetry \u002F Virtualenv"," from the Core. This will install every Python package you need, including dbt.",[411,467,469],{"className":413,"code":468,"language":415,"meta":416,"style":416},"cd core.dashboards_store\neval $(poetry env activate)\npoetry install --no-root  # The --no-root might not be needed, depending on your Poetry version [#38](https:\u002F\u002Fgithub.com\u002FSciance-Inc\u002Fcore.dashboards_store\u002Fissues\u002F38)\n",[267,470,471,480,501],{"__ignoreMap":416},[420,472,473,477],{"class":422,"line":423},[420,474,476],{"class":475},"s2Zo4","cd",[420,478,479],{"class":430}," core.dashboards_store\n",[420,481,482,485,489,492,495,498],{"class":422,"line":437},[420,483,484],{"class":475},"eval",[420,486,488],{"class":487},"sMK4o"," $(",[420,490,491],{"class":426},"poetry",[420,493,494],{"class":430}," env",[420,496,497],{"class":430}," activate",[420,499,500],{"class":487},")\n",[420,502,503,505,508,511],{"class":422,"line":458},[420,504,491],{"class":426},[420,506,507],{"class":430}," install",[420,509,510],{"class":430}," --no-root",[420,512,514],{"class":513},"sHwdD","  # The --no-root might not be needed, depending on your Poetry version [#38](https:\u002F\u002Fgithub.com\u002FSciance-Inc\u002Fcore.dashboards_store\u002Fissues\u002F38)\n",[404,516,517],{"start":458},[407,518,519,520,522,523],{},"Bootstrap a new ",[267,521,276],{}," repo from the Core's template\n",[322,524,525],{"type":324},"You will be prompted for information",[411,527,529],{"className":413,"code":528,"language":415,"meta":416,"style":416},"cd ..\u002F\ncookiecutter core.dashboards_store\u002Ftooling\u002Ftemplate\n",[267,530,531,538],{"__ignoreMap":416},[420,532,533,535],{"class":422,"line":423},[420,534,476],{"class":475},[420,536,537],{"class":430}," ..\u002F\n",[420,539,540,543],{"class":422,"line":437},[420,541,542],{"class":426},"cookiecutter",[420,544,545],{"class":430}," core.dashboards_store\u002Ftooling\u002Ftemplate\n",[404,547,549],{"start":548},4,[407,550,551],{},"Let's follow best practices and use Git for the repo you have just created",[411,553,555],{"className":413,"code":554,"language":415,"meta":416,"style":416},"git init\ngit remote add origin \u003Cyour remote's url>\ngit add .\ngit commit -m \"feat: one commit to initiate them all, one commit to rule them all, one commit to bring them all and in the gitness bind them, in the land of GitHub where the bugs lie.\"\ngit push -u origin master\n",[267,556,557,564,591,596,601],{"__ignoreMap":416},[420,558,559,561],{"class":422,"line":423},[420,560,427],{"class":426},[420,562,563],{"class":430}," init\n",[420,565,566,568,571,574,577,580,583,585,588],{"class":422,"line":437},[420,567,427],{"class":426},[420,569,570],{"class":430}," remote",[420,572,573],{"class":430}," add",[420,575,576],{"class":430}," origin",[420,578,579],{"class":487}," \u003C",[420,581,582],{"class":430},"your",[420,584,570],{"class":430},[420,586,587],{"class":487},"'",[420,589,590],{"class":430},"s url>\n",[420,592,593],{"class":422,"line":458},[420,594,595],{"class":430},"git add .\n",[420,597,598],{"class":422,"line":548},[420,599,600],{"class":430},"git commit -m \"feat: one commit to initiate them all, one commit to rule them all, one commit to bring them all and in the gitness bind them, in the land of GitHub where the bugs lie.\"\n",[420,602,604],{"class":422,"line":603},5,[420,605,606],{"class":430},"git push -u origin master\n",[404,608,609],{"start":603},[407,610,611,612,615],{},"Read the ",[267,613,614],{},"cssXX.dashboards_store\u002FREADME.md"," to learn more about the post-configuration steps required to have everything working.",[247,617,619],{"id":618},"what-did-i-just-do","What did I just do ?",[255,621,622],{},"If everything worked well, you should have the following directory structure:",[411,624,626],{"className":413,"code":625,"language":415,"meta":416,"style":416},"\u003Cworking directory>\n├── core.dashboards_store\n└── cssXX.dashboards_store\n",[267,627,628,640,647],{"__ignoreMap":416},[420,629,630,633,637],{"class":422,"line":423},[420,631,632],{"class":487},"\u003C",[420,634,636],{"class":635},"sTEyZ","working directory",[420,638,639],{"class":487},">\n",[420,641,642,645],{"class":422,"line":437},[420,643,644],{"class":426},"├──",[420,646,479],{"class":430},[420,648,649,652],{"class":422,"line":458},[420,650,651],{"class":426},"└──",[420,653,654],{"class":430}," cssXX.dashboards_store\n",[255,656,657],{},"Both subfolders should contain Git-ready dbt projects.",[322,659,660,661,663],{"type":324},"From now on, ",[267,662,354],{}," will always designate the path to the folder containing the two repos (unless mentioned otherwise).",[665,666,667],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}",{"title":416,"searchDepth":437,"depth":437,"links":669},[670],{"id":390,"depth":437,"text":391},"md",null,{},true,{"title":27,"description":416},"im2sLZsZCSO8OxM8P_--eMM_2XtfOFeT7k5iiiIq8T0",[678,679],{"title":24,"path":19,"stem":25,"description":416,"children":-1},{"title":31,"path":32,"stem":33,"description":680,"children":-1},"For now, we haven't connected the Store to the database. To connect the Store to the database and start materializing our views and tables, we need to tell dbt where to look for the database credentials and connection information. We do this by creating a profiles.yml file.",1781106579381]