{"id":542,"date":"2022-11-28T08:30:00","date_gmt":"2022-11-28T08:30:00","guid":{"rendered":"https:\/\/datablog.roman-halliday.com\/?p=542"},"modified":"2023-02-16T10:37:41","modified_gmt":"2023-02-16T10:37:41","slug":"using-eclipse-ide-for-dbt-development","status":"publish","type":"post","link":"https:\/\/datablog.roman-halliday.com\/index.php\/2022\/11\/28\/using-eclipse-ide-for-dbt-development\/","title":{"rendered":"Using eclipse IDE for dbt development"},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"452\" height=\"300\" src=\"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/th-1238647222.jpg\" alt=\"\" class=\"wp-image-582\" srcset=\"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/th-1238647222.jpg 452w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/th-1238647222-300x199.jpg 300w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/th-1238647222-407x270.jpg 407w\" sizes=\"auto, (max-width: 452px) 100vw, 452px\" \/><\/figure><\/div>\n\n\n<p>Which IDE to use is often a personal preference, and while many of us may argue the virtues of one over another&#8230; Often it&#8217;s about &#8220;the one I know&#8221;, or &#8220;the one I have access to&#8221;. Many developers chose Visual Studio Code for dbt work (for many good reasons). I find myself returning to the familiar interface of <a href=\"https:\/\/eclipseide.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">eclipse<\/a> (after working with it using numerous languages and plugins over the years).<\/p>\n\n\n\n<p>This is how to get started with eclipse as an IDE for dbt projects, for anyone who wants to give it a go.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why I use eclipse<\/h2>\n\n\n\n<p>Most of it is personal preference and familiarity, but some things I like about it are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The git integration and compare tools (or diff functionality with files outside of git) are very rich and intuitive.<\/li>\n\n\n\n<li>It supports many languages (in a past life I started using it for java, then PHP, shell scripts, python and now dbt).<\/li>\n\n\n\n<li>It&#8217;s great for debugging python and inspecting elements during debugging (not a great one for dbt yet, but valuable for other projects I work on)<\/li>\n\n\n\n<li>It has a great set of plugins\/extensions for most things you can think of.<\/li>\n\n\n\n<li>I like how it separates workspaces, so projects (or collections of them) can be organised as I wish.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"682\" src=\"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/fantasy-darling-eclipse-night-4566021-1024x682.jpg\" alt=\"fantasy darling eclipse night\" class=\"wp-image-551\" srcset=\"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/fantasy-darling-eclipse-night-4566021-1024x682.jpg 1024w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/fantasy-darling-eclipse-night-4566021-300x200.jpg 300w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/fantasy-darling-eclipse-night-4566021-768x512.jpg 768w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/fantasy-darling-eclipse-night-4566021-405x270.jpg 405w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/fantasy-darling-eclipse-night-4566021.jpg 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\">Configuring &amp; using eclipse for dbt projects<\/h1>\n\n\n\n<p>Once you have installed eclipse (from their website, or your package manager of choice), the first thing it asks you to do is create a workspace (this is a way of having a collection of projects all in one place).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Environment &amp; plugins<\/h2>\n\n\n\n<p>Once you enter into a new workspace, you are faced with the welcome screen, before we do anything else it&#8217;s good to get some plugins installed that we will use.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"793\" src=\"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-14.42.55-1024x793.png\" alt=\"\" class=\"wp-image-552\" srcset=\"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-14.42.55-1024x793.png 1024w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-14.42.55-300x232.png 300w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-14.42.55-768x595.png 768w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-14.42.55-349x270.png 349w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-14.42.55.png 1136w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Go to the Help menu, and select &#8220;Eclipse Marketplace&#8221;, you can then search within it for plugins to install.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"406\" height=\"489\" src=\"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-14.44.54.png\" alt=\"\" class=\"wp-image-553\" srcset=\"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-14.44.54.png 406w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-14.44.54-249x300.png 249w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-14.44.54-224x270.png 224w\" sizes=\"auto, (max-width: 406px) 100vw, 406px\" \/><\/figure><\/div>\n\n\n<p>The website for the <a href=\"https:\/\/marketplace.eclipse.org\/frontpage\">eclipse marketplace<\/a> is easy to navigate, if you sign up for an account you can save favourites (which helps if you forget the name of your favourite occasional extension).<\/p>\n\n\n\n<p>The key extensions I use when working with dbt projects are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/marketplace.eclipse.org\/content\/yaml-editor\" target=\"_blank\" rel=\"noreferrer noopener\">Yaml Editor<\/a> &#8211; Handy for those configuration files<\/li>\n\n\n\n<li><a href=\"https:\/\/marketplace.eclipse.org\/content\/liclipsetext\" target=\"_blank\" rel=\"noreferrer noopener\">LiClipseText<\/a> &#8211; There are few file types this won&#8217;t manage to do syntax highlighting for<\/li>\n\n\n\n<li><a href=\"https:\/\/marketplace.eclipse.org\/content\/sql-editor\" target=\"_blank\" rel=\"noreferrer noopener\">SQL Editor<\/a> &#8211; A few extra bits for editing SQL files<\/li>\n<\/ul>\n\n\n\n<p>It will ask to restart a couple of times during this process, be patient and remember that this isn&#8217;t a frequent requirement once up and running.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Add SSH private keys to eclipse (for GitHub integration)<\/h2>\n\n\n\n<p>If you are using GitHub, then you will want to do this step early on. <\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open Eclipse Preferences<\/li>\n\n\n\n<li>Navigate to SSH Preferences (hint: type ssh into the search box)<\/li>\n\n\n\n<li>Open: General -&gt; Network Connections -&gt; SSH2<\/li>\n\n\n\n<li>The first tab should be selected &#8220;General&#8221;<\/li>\n\n\n\n<li>Set SSH2 Home (on a Linux\/Mac OS environment this is usually <code>\/home\/&lt;username&gt;\/.ssh<\/code> on windows, it&#8217;s usually <code>C:\\Users\\&lt;username&gt;\\.ssh<\/code>)<\/li>\n\n\n\n<li>Use the &#8220;Add private key&#8221; button to add your private key(s) to eclipse<\/li>\n<\/ol>\n\n\n\n<p>For screenshots and examples, you can check out <a href=\"https:\/\/www.automationdojos.com\/add-ssh-private-keys-to-eclipse\/\" target=\"_blank\" rel=\"noreferrer noopener\">How To Add SSH Private Keys to Eclipse<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Configure terminal<\/h2>\n\n\n\n<p>This may not be needed, but I&#8217;ve had issues on macs where the scripts which run at logon aren&#8217;t run by default (including setting python and other <code>PATH<\/code> variables). To fix this:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to preferences<\/li>\n\n\n\n<li>Terminal -&gt; Local Terminal<\/li>\n\n\n\n<li>Set &#8220;Arguments&#8221; to: <code>--login<\/code><\/li>\n<\/ol>\n\n\n\n<h1 class=\"wp-block-heading\">Creating a new dbt project<\/h1>\n\n\n\n<p>If you don&#8217;t have existing code, then this is <\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Use the button on the left-hand side &#8220;Create a project&#8221;<\/li>\n\n\n\n<li>select General -&gt; Project<\/li>\n\n\n\n<li>Give it a name<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Virtual environment &amp; dbt<\/h2>\n\n\n\n<p>At this stage, you will need to set up the virtual environment and install dbt.<\/p>\n\n\n\n<p>To open up a terminal in Eclipse, right-click on the project folder (on the left of the screen):<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Show in Local Terminal -&gt; Terminal<\/li>\n<\/ul>\n\n\n\n<p>Then use the command line as normal (which will look something like the below, depending on your operating system\/configuration)<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Create virtual environment\npython -m venv venv\n\n# Start the virtual environment\nsource venv\/bin\/activate\n\n# install dbt (for this example I'm using `dbt-sqlite`)\npip install --upgrade pip\npip install dbt-SQLite<\/pre>\n\n\n\n<p>Then use dbt to create the new project<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">dbt init &lt;project name><\/pre>\n\n\n\n<p>To refresh the project explorer, right-click on the project folder and select &#8220;refresh&#8221;.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Importing an existing dbt project from GitHub<\/h1>\n\n\n\n<p>If you are working with GitHub, you will need to configure ssh keys as above.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-4 is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-medium\"><a href=\"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-14.58.11-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"232\" data-id=\"568\" src=\"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-14.58.11-1-300x232.png\" alt=\"\" class=\"wp-image-568\" srcset=\"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-14.58.11-1-300x232.png 300w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-14.58.11-1-1024x793.png 1024w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-14.58.11-1-768x595.png 768w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-14.58.11-1-349x270.png 349w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-14.58.11-1.png 1136w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-medium\"><a href=\"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-14.58.35-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"230\" data-id=\"566\" src=\"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-14.58.35-1-300x230.png\" alt=\"\" class=\"wp-image-566\" srcset=\"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-14.58.35-1-300x230.png 300w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-14.58.35-1-1024x784.png 1024w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-14.58.35-1-768x588.png 768w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-14.58.35-1-353x270.png 353w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-14.58.35-1.png 1092w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-medium\"><a href=\"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-14.59.32-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"230\" data-id=\"565\" src=\"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-14.59.32-1-300x230.png\" alt=\"\" class=\"wp-image-565\" srcset=\"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-14.59.32-1-300x230.png 300w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-14.59.32-1-1024x784.png 1024w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-14.59.32-1-768x588.png 768w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-14.59.32-1-353x270.png 353w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-14.59.32-1.png 1092w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-medium\"><a href=\"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-15.08.28-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"230\" data-id=\"567\" src=\"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-15.08.28-1-300x230.png\" alt=\"\" class=\"wp-image-567\" srcset=\"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-15.08.28-1-300x230.png 300w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-15.08.28-1-1024x784.png 1024w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-15.08.28-1-768x588.png 768w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-15.08.28-1-353x270.png 353w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-15.08.28-1.png 1092w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-medium\"><a href=\"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-15.07.40-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"230\" data-id=\"564\" src=\"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-15.07.40-1-300x230.png\" alt=\"\" class=\"wp-image-564\" srcset=\"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-15.07.40-1-300x230.png 300w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-15.07.40-1-1024x784.png 1024w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-15.07.40-1-768x588.png 768w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-15.07.40-1-353x270.png 353w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-15.07.40-1.png 1092w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-medium\"><a href=\"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-15.08.39-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"230\" data-id=\"563\" src=\"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-15.08.39-1-300x230.png\" alt=\"\" class=\"wp-image-563\" srcset=\"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-15.08.39-1-300x230.png 300w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-15.08.39-1-1024x784.png 1024w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-15.08.39-1-768x588.png 768w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-15.08.39-1-353x270.png 353w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-15.08.39-1.png 1092w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-medium\"><a href=\"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-15.08.53-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"232\" data-id=\"562\" src=\"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-15.08.53-1-300x232.png\" alt=\"\" class=\"wp-image-562\" srcset=\"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-15.08.53-1-300x232.png 300w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-15.08.53-1-1024x793.png 1024w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-15.08.53-1-768x595.png 768w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-15.08.53-1-349x270.png 349w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-15.08.53-1.png 1136w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<ol class=\"wp-block-list\">\n<li>From the project explorer on the left, select &#8220;Import projects&#8221;<\/li>\n\n\n\n<li>Projects from git (with smart import)\n<ul class=\"wp-block-list\">\n<li>Existing local repository &#8211; For if you already have the repository cloned to your machine<\/li>\n\n\n\n<li>Clone URL &#8211; For if you need to copy the URL from GitHub<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Select the local directory (by default eclipse uses one called git which is outside of the project). I find it best to select the workspace&#8217;s directory so that the files are all together.<\/li>\n\n\n\n<li>Select the branch you wish to check out, most likely &#8216;main&#8217; (or whatever your primary branch is called)<\/li>\n\n\n\n<li>On the next screen, confirm any other options and hit &#8220;Finish&#8221;<\/li>\n<\/ol>\n\n\n\n<p>You now have the project checked out.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Virtual environment &amp; dbt<\/h2>\n\n\n\n<p>You will need to set up the virtual environment and install dbt.<\/p>\n\n\n\n<p>To open up a terminal in Eclipse, right-click on the project folder (on the left of the screen):<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Show in Local Terminal -&gt; Terminal<\/li>\n<\/ul>\n\n\n\n<p>Then use the command line as normal (which will look something like the below, depending on your operating system\/configuration):<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Create virtual environment\npython -m venv venv\n\n# Start the virtual environment\nsource venv\/bin\/activate\n\n# install dbt (for this example I'm using `dbt-sqlite`)\npip install --upgrade pip\npip install dbt-SQLite<\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">Viewing &amp; Editing the profiles.yml<\/h1>\n\n\n\n<p>If you wish to see and edit the <code>profiles.yml<\/code> file (database connections and environment settings) in eclipse, I find the best thing to do is add a new project for it. The simplest thing to do is create a new project (you can use this for notes and other things), then have a symbolic link (mac\/Linux) or shortcut (windows) to the folder for dbt configuration.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Create an empty project<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>New -> Project<\/li>\n\n\n\n<li>General -> Project<\/li>\n\n\n\n<li>Project name: <code>DBT_config<\/code> (this is what I call it, you can call it anything you like)<\/li>\n\n\n\n<li>make sure &#8220;use default location&#8221; is ticked<\/li>\n\n\n\n<li>Finish<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Create the link<\/h2>\n\n\n\n<p>In <strong>windows<\/strong>, this is the right-click -> new shortcut<\/p>\n\n\n\n<p>In <strong>Mac\/Linux<\/strong>, creating a symbolic link is the way to go. Make sure you are in the directory created for the new project (the previously mentioned &#8220;show in local terminal&#8221; comes in handy here). Then use this on the terminal:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ln -s ~\/.dbt dot_dbt<\/pre>\n\n\n\n<p>Finally just right-click the project in Eclipse and select &#8220;refresh&#8221; and a new folder will appear containing the <code>profiles.yml<\/code> file.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Hints &amp; tips<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Using plugins<\/h2>\n\n\n\n<p>You can right-click on a file for the &#8220;open with&#8221; list to select which plugin you will use for that file.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Using the git perspective<\/h2>\n\n\n\n<p>While you can use right-click menus in eclipse for git actions, there is the git &#8220;perspective&#8221; One of the key advantages of Eclipse for me.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Window -&gt; Perspective -&gt; Open Perspective -&gt; Other<\/li>\n\n\n\n<li>select &#8220;git&#8221;<\/li>\n\n\n\n<li>Click &#8220;open&#8221;<\/li>\n<\/ol>\n\n\n\n<p>You can now switch between the java (there isn&#8217;t a dbt one) and git perspectives using the buttons in the top right corner.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"617\" src=\"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-16.14.42-1024x617.png\" alt=\"\" class=\"wp-image-580\" srcset=\"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-16.14.42-1024x617.png 1024w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-16.14.42-300x181.png 300w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-16.14.42-768x463.png 768w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-16.14.42-448x270.png 448w, https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/Screenshot-2022-11-23-at-16.14.42.png 1460w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>The &#8220;Git staging&#8221; tab is the handiest for looking at what has changed.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve been using eclipse as an IDE of choice with dbt for a couple of years, here is how I configure it for working with dbt projects.<\/p>\n","protected":false},"author":1,"featured_media":551,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[61,59],"tags":[63,62,65,64,34],"class_list":["post-542","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dbt","category-development","tag-bash","tag-dbt","tag-development","tag-eclipse","tag-python"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Using eclipse IDE for dbt development - Rows Across The Lake<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/datablog.roman-halliday.com\/index.php\/2022\/11\/28\/using-eclipse-ide-for-dbt-development\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Using eclipse IDE for dbt development - Rows Across The Lake\" \/>\n<meta property=\"og:description\" content=\"I&#039;ve been using eclipse as an IDE of choice with dbt for a couple of years, here is how I configure it for working with dbt projects.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/datablog.roman-halliday.com\/index.php\/2022\/11\/28\/using-eclipse-ide-for-dbt-development\/\" \/>\n<meta property=\"og:site_name\" content=\"Rows Across The Lake\" \/>\n<meta property=\"article:published_time\" content=\"2022-11-28T08:30:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-02-16T10:37:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/fantasy-darling-eclipse-night-4566021.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"853\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"david\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@d_roman_h\" \/>\n<meta name=\"twitter:site\" content=\"@d_roman_h\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"david\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/index.php\\\/2022\\\/11\\\/28\\\/using-eclipse-ide-for-dbt-development\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/index.php\\\/2022\\\/11\\\/28\\\/using-eclipse-ide-for-dbt-development\\\/\"},\"author\":{\"name\":\"david\",\"@id\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/#\\\/schema\\\/person\\\/575f96d2590c3085923ff9e1b565748b\"},\"headline\":\"Using eclipse IDE for dbt development\",\"datePublished\":\"2022-11-28T08:30:00+00:00\",\"dateModified\":\"2023-02-16T10:37:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/index.php\\\/2022\\\/11\\\/28\\\/using-eclipse-ide-for-dbt-development\\\/\"},\"wordCount\":1173,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/#\\\/schema\\\/person\\\/575f96d2590c3085923ff9e1b565748b\"},\"image\":{\"@id\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/index.php\\\/2022\\\/11\\\/28\\\/using-eclipse-ide-for-dbt-development\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/wp-content\\\/uploads\\\/2022\\\/11\\\/fantasy-darling-eclipse-night-4566021.jpg\",\"keywords\":[\"bash\",\"dbt\",\"development\",\"eclipse\",\"python\"],\"articleSection\":[\"dbt\",\"Development\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/datablog.roman-halliday.com\\\/index.php\\\/2022\\\/11\\\/28\\\/using-eclipse-ide-for-dbt-development\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/index.php\\\/2022\\\/11\\\/28\\\/using-eclipse-ide-for-dbt-development\\\/\",\"url\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/index.php\\\/2022\\\/11\\\/28\\\/using-eclipse-ide-for-dbt-development\\\/\",\"name\":\"Using eclipse IDE for dbt development - Rows Across The Lake\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/index.php\\\/2022\\\/11\\\/28\\\/using-eclipse-ide-for-dbt-development\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/index.php\\\/2022\\\/11\\\/28\\\/using-eclipse-ide-for-dbt-development\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/wp-content\\\/uploads\\\/2022\\\/11\\\/fantasy-darling-eclipse-night-4566021.jpg\",\"datePublished\":\"2022-11-28T08:30:00+00:00\",\"dateModified\":\"2023-02-16T10:37:41+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/index.php\\\/2022\\\/11\\\/28\\\/using-eclipse-ide-for-dbt-development\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/datablog.roman-halliday.com\\\/index.php\\\/2022\\\/11\\\/28\\\/using-eclipse-ide-for-dbt-development\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/index.php\\\/2022\\\/11\\\/28\\\/using-eclipse-ide-for-dbt-development\\\/#primaryimage\",\"url\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/wp-content\\\/uploads\\\/2022\\\/11\\\/fantasy-darling-eclipse-night-4566021.jpg\",\"contentUrl\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/wp-content\\\/uploads\\\/2022\\\/11\\\/fantasy-darling-eclipse-night-4566021.jpg\",\"width\":1280,\"height\":853,\"caption\":\"fantasy darling eclipse night\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/index.php\\\/2022\\\/11\\\/28\\\/using-eclipse-ide-for-dbt-development\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Using eclipse IDE for dbt development\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/#website\",\"url\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/\",\"name\":\"Rows Across The Lake\",\"description\":\"Data &amp; Databases\",\"publisher\":{\"@id\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/#\\\/schema\\\/person\\\/575f96d2590c3085923ff9e1b565748b\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/#\\\/schema\\\/person\\\/575f96d2590c3085923ff9e1b565748b\",\"name\":\"david\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/acddbc676a1d5c73795edcf0627ee39e5aa947da9033b58373e03d93122cb3b7?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/acddbc676a1d5c73795edcf0627ee39e5aa947da9033b58373e03d93122cb3b7?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/acddbc676a1d5c73795edcf0627ee39e5aa947da9033b58373e03d93122cb3b7?s=96&d=mm&r=g\",\"caption\":\"david\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/acddbc676a1d5c73795edcf0627ee39e5aa947da9033b58373e03d93122cb3b7?s=96&d=mm&r=g\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Using eclipse IDE for dbt development - Rows Across The Lake","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/datablog.roman-halliday.com\/index.php\/2022\/11\/28\/using-eclipse-ide-for-dbt-development\/","og_locale":"en_GB","og_type":"article","og_title":"Using eclipse IDE for dbt development - Rows Across The Lake","og_description":"I've been using eclipse as an IDE of choice with dbt for a couple of years, here is how I configure it for working with dbt projects.","og_url":"https:\/\/datablog.roman-halliday.com\/index.php\/2022\/11\/28\/using-eclipse-ide-for-dbt-development\/","og_site_name":"Rows Across The Lake","article_published_time":"2022-11-28T08:30:00+00:00","article_modified_time":"2023-02-16T10:37:41+00:00","og_image":[{"width":1280,"height":853,"url":"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/fantasy-darling-eclipse-night-4566021.jpg","type":"image\/jpeg"}],"author":"david","twitter_card":"summary_large_image","twitter_creator":"@d_roman_h","twitter_site":"@d_roman_h","twitter_misc":{"Written by":"david","Estimated reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/datablog.roman-halliday.com\/index.php\/2022\/11\/28\/using-eclipse-ide-for-dbt-development\/#article","isPartOf":{"@id":"https:\/\/datablog.roman-halliday.com\/index.php\/2022\/11\/28\/using-eclipse-ide-for-dbt-development\/"},"author":{"name":"david","@id":"https:\/\/datablog.roman-halliday.com\/#\/schema\/person\/575f96d2590c3085923ff9e1b565748b"},"headline":"Using eclipse IDE for dbt development","datePublished":"2022-11-28T08:30:00+00:00","dateModified":"2023-02-16T10:37:41+00:00","mainEntityOfPage":{"@id":"https:\/\/datablog.roman-halliday.com\/index.php\/2022\/11\/28\/using-eclipse-ide-for-dbt-development\/"},"wordCount":1173,"commentCount":0,"publisher":{"@id":"https:\/\/datablog.roman-halliday.com\/#\/schema\/person\/575f96d2590c3085923ff9e1b565748b"},"image":{"@id":"https:\/\/datablog.roman-halliday.com\/index.php\/2022\/11\/28\/using-eclipse-ide-for-dbt-development\/#primaryimage"},"thumbnailUrl":"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/fantasy-darling-eclipse-night-4566021.jpg","keywords":["bash","dbt","development","eclipse","python"],"articleSection":["dbt","Development"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/datablog.roman-halliday.com\/index.php\/2022\/11\/28\/using-eclipse-ide-for-dbt-development\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/datablog.roman-halliday.com\/index.php\/2022\/11\/28\/using-eclipse-ide-for-dbt-development\/","url":"https:\/\/datablog.roman-halliday.com\/index.php\/2022\/11\/28\/using-eclipse-ide-for-dbt-development\/","name":"Using eclipse IDE for dbt development - Rows Across The Lake","isPartOf":{"@id":"https:\/\/datablog.roman-halliday.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/datablog.roman-halliday.com\/index.php\/2022\/11\/28\/using-eclipse-ide-for-dbt-development\/#primaryimage"},"image":{"@id":"https:\/\/datablog.roman-halliday.com\/index.php\/2022\/11\/28\/using-eclipse-ide-for-dbt-development\/#primaryimage"},"thumbnailUrl":"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/fantasy-darling-eclipse-night-4566021.jpg","datePublished":"2022-11-28T08:30:00+00:00","dateModified":"2023-02-16T10:37:41+00:00","breadcrumb":{"@id":"https:\/\/datablog.roman-halliday.com\/index.php\/2022\/11\/28\/using-eclipse-ide-for-dbt-development\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/datablog.roman-halliday.com\/index.php\/2022\/11\/28\/using-eclipse-ide-for-dbt-development\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/datablog.roman-halliday.com\/index.php\/2022\/11\/28\/using-eclipse-ide-for-dbt-development\/#primaryimage","url":"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/fantasy-darling-eclipse-night-4566021.jpg","contentUrl":"https:\/\/datablog.roman-halliday.com\/wp-content\/uploads\/2022\/11\/fantasy-darling-eclipse-night-4566021.jpg","width":1280,"height":853,"caption":"fantasy darling eclipse night"},{"@type":"BreadcrumbList","@id":"https:\/\/datablog.roman-halliday.com\/index.php\/2022\/11\/28\/using-eclipse-ide-for-dbt-development\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/datablog.roman-halliday.com\/"},{"@type":"ListItem","position":2,"name":"Using eclipse IDE for dbt development"}]},{"@type":"WebSite","@id":"https:\/\/datablog.roman-halliday.com\/#website","url":"https:\/\/datablog.roman-halliday.com\/","name":"Rows Across The Lake","description":"Data &amp; Databases","publisher":{"@id":"https:\/\/datablog.roman-halliday.com\/#\/schema\/person\/575f96d2590c3085923ff9e1b565748b"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/datablog.roman-halliday.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":["Person","Organization"],"@id":"https:\/\/datablog.roman-halliday.com\/#\/schema\/person\/575f96d2590c3085923ff9e1b565748b","name":"david","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/acddbc676a1d5c73795edcf0627ee39e5aa947da9033b58373e03d93122cb3b7?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/acddbc676a1d5c73795edcf0627ee39e5aa947da9033b58373e03d93122cb3b7?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/acddbc676a1d5c73795edcf0627ee39e5aa947da9033b58373e03d93122cb3b7?s=96&d=mm&r=g","caption":"david"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/acddbc676a1d5c73795edcf0627ee39e5aa947da9033b58373e03d93122cb3b7?s=96&d=mm&r=g"}}]}},"_links":{"self":[{"href":"https:\/\/datablog.roman-halliday.com\/index.php\/wp-json\/wp\/v2\/posts\/542","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/datablog.roman-halliday.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/datablog.roman-halliday.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/datablog.roman-halliday.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/datablog.roman-halliday.com\/index.php\/wp-json\/wp\/v2\/comments?post=542"}],"version-history":[{"count":20,"href":"https:\/\/datablog.roman-halliday.com\/index.php\/wp-json\/wp\/v2\/posts\/542\/revisions"}],"predecessor-version":[{"id":600,"href":"https:\/\/datablog.roman-halliday.com\/index.php\/wp-json\/wp\/v2\/posts\/542\/revisions\/600"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/datablog.roman-halliday.com\/index.php\/wp-json\/wp\/v2\/media\/551"}],"wp:attachment":[{"href":"https:\/\/datablog.roman-halliday.com\/index.php\/wp-json\/wp\/v2\/media?parent=542"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/datablog.roman-halliday.com\/index.php\/wp-json\/wp\/v2\/categories?post=542"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/datablog.roman-halliday.com\/index.php\/wp-json\/wp\/v2\/tags?post=542"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}