sql-jarvis 1.8.0 → 1.9.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4170e0206ecc56c82faabe4c32081c9af2ceb0c3
4
- data.tar.gz: 75e6b5926063b5035e8452dae7992230ed19cd2a
3
+ metadata.gz: f1955fca26a63e1f2ffdedb671c1fdf3f151a931
4
+ data.tar.gz: 5f46942561c29e99cc9406ebf013b3196ea94f6b
5
5
  SHA512:
6
- metadata.gz: 70ca90adf5d7b180a135d2dc8018c9436ef6bbb86135311f595e94bae58e30ba970d978fe71e149131e25985a6166e2dc73ec2d13341090e2a5b9291ac7316f9
7
- data.tar.gz: 168aa4bde1f3bc5d730165fd45a65c288bc8e7acc74a0791e704610cd64d11b19b4968f39aa755efd67cee27c7c7df6a10e5cc6a40388d086ff03460cb08da25
6
+ metadata.gz: 11f3e01c54004114a906921897a007412be4381d282025103895d359a4dcc0d57f33f98496c2f3d62fe17165ab3648905a8cbefa06a3394ec775f63c07481057
7
+ data.tar.gz: 51c7cadfdd95d77870a00551cbe70ce6aaef4f0d7b62acceef64c5c0e2bb0728b6391f3e83af8ae0001e01705734acb92d6a4b1d94596f73fae4f50a55f29230
data/.gitattributes ADDED
@@ -0,0 +1 @@
1
+ app/assets/* linguist-vendored
@@ -0,0 +1,7 @@
1
+ Hi,
2
+
3
+ Before creating an issue, please check out the Contributing Guide:
4
+
5
+ https://github.com/ankane/blazer/blob/master/CONTRIBUTING.md
6
+
7
+ Thanks!
data/CHANGELOG.md CHANGED
@@ -1,6 +1,22 @@
1
- ## 1.8.1 [unreleased]
1
+ ## 1.9.1 [unreleased]
2
+
3
+ - Fixed error with latest `google-cloud-bigquery`
4
+
5
+ ## 1.9.0
6
+
7
+ - Prompt developers to check custom `before_action`
8
+ - Better ordering on home page
9
+ - Added support for Snowflake
10
+
11
+ ## 1.8.2
12
+
13
+ - Added support for Cassandra
14
+ - Fixes for Druid
15
+
16
+ ## 1.8.1
2
17
 
3
18
  - Added support for Amazon Athena
19
+ - Added support for Druid
4
20
  - Fixed query cancellation
5
21
 
6
22
  ## 1.8.0
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,42 @@
1
+ # Contributing
2
+
3
+ First, thanks for wanting to contribute. You’re awesome! :heart:
4
+
5
+ ## Help
6
+
7
+ We’re not able to provide support through GitHub Issues. If you’re looking for help with your code, try posting on [Stack Overflow](https://stackoverflow.com/).
8
+
9
+ All features should be documented. If you don’t see a feature in the docs, assume it doesn’t exist.
10
+
11
+ ## Bugs
12
+
13
+ Think you’ve discovered a bug?
14
+
15
+ 1. Search existing issues to see if it’s been reported.
16
+ 2. Try the `master` branch to make sure it hasn’t been fixed.
17
+
18
+ ```rb
19
+ gem "blazer", github: "ankane/blazer"
20
+ ```
21
+
22
+ If the above steps don’t help, create an issue. Include:
23
+
24
+ - Detailed steps to reproduce
25
+ - Complete backtraces for exceptions
26
+
27
+ ## New Features
28
+
29
+ If you’d like to discuss a new feature, create an issue and start the title with `[Idea]`.
30
+
31
+ ## Pull Requests
32
+
33
+ Fork the project and create a pull request. A few tips:
34
+
35
+ - Keep changes to a minimum. If you have multiple features or fixes, submit multiple pull requests.
36
+ - Follow the existing style. The code should read like it’s written by a single person.
37
+
38
+ Feel free to open an issue to get feedback on your idea before spending too much time on it.
39
+
40
+ ---
41
+
42
+ This contributing guide is released under [CCO](https://creativecommons.org/publicdomain/zero/1.0/) (public domain). Use it for your own project without attribution.
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2014 Andrew Kane
1
+ Copyright (c) 2014-2018 Andrew Kane
2
2
 
3
3
  MIT License
4
4
 
data/README.md CHANGED
@@ -4,9 +4,9 @@ Explore your data with SQL. Easily create charts and dashboards, and share them
4
4
 
5
5
  [Try it out](https://blazer.dokkuapp.com)
6
6
 
7
- [![Screenshot](https://blazerme.herokuapp.com/assets/screenshot-6ca3115a518b488026e48be83ba0d4c9.png)](https://blazer.dokkuapp.com)
7
+ [![Screenshot](https://blazer.dokkuapp.com/assets/screenshot-6ca3115a518b488026e48be83ba0d4c9.png)](https://blazer.dokkuapp.com)
8
8
 
9
- :envelope: [Get notified of updates](http://eepurl.com/cbUwsD)
9
+ :envelope: [Get notified of updates](https://eepurl.com/cbUwsD)
10
10
 
11
11
  :tangerine: Battle-tested at [Instacart](https://www.instacart.com/opensource)
12
12
 
@@ -37,8 +37,8 @@ gem 'blazer'
37
37
  Run:
38
38
 
39
39
  ```sh
40
- rails g blazer:install
41
- rake db:migrate
40
+ rails generate blazer:install
41
+ rails db:migrate
42
42
  ```
43
43
 
44
44
  And mount the dashboard in your `config/routes.rb`:
@@ -60,7 +60,7 @@ Blazer tries to protect against queries which modify data (by running each query
60
60
  Be sure to set a host in `config/environments/production.rb` for emails to work.
61
61
 
62
62
  ```ruby
63
- config.action_mailer.default_url_options = {host: "blazerme.herokuapp.com"}
63
+ config.action_mailer.default_url_options = {host: "blazer.dokkuapp.com"}
64
64
  ```
65
65
 
66
66
  Schedule checks to run (with cron, [Heroku Scheduler](https://elements.heroku.com/addons/scheduler), etc). The default options are every 5 minutes, 1 hour, or 1 day, which you can customize. For each of these options, set up a task to run.
@@ -123,7 +123,7 @@ Also, make sure authorization is enabled when you start the server.
123
123
 
124
124
  ### Sensitive Data
125
125
 
126
- To protect sensitive info like password hashes and access tokens, use views. Documentation coming soon.
126
+ Check out [Hypershield](https://github.com/ankane/hypershield) to shield sensitive data.
127
127
 
128
128
  ## Authentication
129
129
 
@@ -141,7 +141,7 @@ ENV["BLAZER_PASSWORD"] = "secret"
141
141
  ### Devise
142
142
 
143
143
  ```ruby
144
- authenticate :user, -> (user) { user.admin? } do
144
+ authenticate :user, ->(user) { user.admin? } do
145
145
  mount Blazer::Engine, at: "blazer"
146
146
  end
147
147
  ```
@@ -151,18 +151,20 @@ end
151
151
  Specify a `before_action` method to run in `blazer.yml`.
152
152
 
153
153
  ```yml
154
- before_action: require_admin
154
+ before_action_method: require_admin
155
155
  ```
156
156
 
157
- Then define the custom authentication method in your `application_controller.rb`.
157
+ You can define this method in your `ApplicationController`.
158
158
 
159
159
  ```ruby
160
160
  def require_admin
161
- # depending on your auth, maybe something like...
162
- current_user && current_user.admin?
161
+ # depending on your auth, something like...
162
+ redirect_to root_path unless current_user && current_user.admin?
163
163
  end
164
164
  ```
165
165
 
166
+ Be sure to render or redirect for unauthorized users.
167
+
166
168
  ## Queries
167
169
 
168
170
  ### Variables
@@ -173,7 +175,7 @@ Create queries with variables.
173
175
  SELECT * FROM users WHERE gender = {gender}
174
176
  ```
175
177
 
176
- Use `{start_time}` and `{end_time}` for time ranges. [Example](https://blazerme.herokuapp.com/queries/9-time-range-selector?start_time=1997-10-03T05%3A00%3A00%2B00%3A00&end_time=1997-10-04T04%3A59%3A59%2B00%3A00)
178
+ Use `{start_time}` and `{end_time}` for time ranges. [Example](https://blazer.dokkuapp.com/queries/9-time-range-selector?start_time=1997-10-03T05%3A00%3A00%2B00%3A00&end_time=1997-10-04T04%3A59%3A59%2B00%3A00)
177
179
 
178
180
  ```sql
179
181
  SELECT * FROM ratings WHERE rated_at >= {start_time} AND rated_at <= {end_time}
@@ -181,7 +183,7 @@ SELECT * FROM ratings WHERE rated_at >= {start_time} AND rated_at <= {end_time}
181
183
 
182
184
  ### Smart Variables
183
185
 
184
- [Example](https://blazerme.herokuapp.com/queries/1-smart-variable)
186
+ [Example](https://blazer.dokkuapp.com/queries/1-smart-variable)
185
187
 
186
188
  Suppose you have the query:
187
189
 
@@ -210,19 +212,19 @@ smart_variables:
210
212
 
211
213
  ### Linked Columns
212
214
 
213
- [Example](https://blazerme.herokuapp.com/queries/3-linked-column) - title column
215
+ [Example](https://blazer.dokkuapp.com/queries/3-linked-column) - title column
214
216
 
215
217
  Link results to other pages in your apps or around the web. Specify a column name and where it should link to. You can use the value of the result with `{value}`.
216
218
 
217
219
  ```yml
218
220
  linked_columns:
219
221
  user_id: "/admin/users/{value}"
220
- ip_address: "http://www.infosniper.net/index.php?ip_address={value}"
222
+ ip_address: "https://www.infosniper.net/index.php?ip_address={value}"
221
223
  ```
222
224
 
223
225
  ### Smart Columns
224
226
 
225
- [Example](https://blazerme.herokuapp.com/queries/2-smart-column) - occupation_id column
227
+ [Example](https://blazer.dokkuapp.com/queries/2-smart-column) - occupation_id column
226
228
 
227
229
  Suppose you have the query:
228
230
 
@@ -275,13 +277,13 @@ Blazer will automatically generate charts based on the types of the columns retu
275
277
 
276
278
  There are two ways to generate line charts.
277
279
 
278
- 2+ columns - timestamp, numeric(s) - [Example](https://blazerme.herokuapp.com/queries/4-line-chart-format-1)
280
+ 2+ columns - timestamp, numeric(s) - [Example](https://blazer.dokkuapp.com/queries/4-line-chart-format-1)
279
281
 
280
282
  ```sql
281
283
  SELECT date_trunc('week', created_at), COUNT(*) FROM users GROUP BY 1
282
284
  ```
283
285
 
284
- 3 columns - timestamp, string, numeric - [Example](https://blazerme.herokuapp.com/queries/5-line-chart-format-2)
286
+ 3 columns - timestamp, string, numeric - [Example](https://blazer.dokkuapp.com/queries/5-line-chart-format-2)
285
287
 
286
288
 
287
289
  ```sql
@@ -292,13 +294,13 @@ SELECT date_trunc('week', created_at), gender, COUNT(*) FROM users GROUP BY 1, 2
292
294
 
293
295
  There are also two ways to generate column charts.
294
296
 
295
- 2+ columns - string, numeric(s) - [Example](https://blazerme.herokuapp.com/queries/6-column-chart-format-1)
297
+ 2+ columns - string, numeric(s) - [Example](https://blazer.dokkuapp.com/queries/6-column-chart-format-1)
296
298
 
297
299
  ```sql
298
300
  SELECT gender, COUNT(*) FROM users GROUP BY 1
299
301
  ```
300
302
 
301
- 3 columns - string, string, numeric - [Example](https://blazerme.herokuapp.com/queries/7-column-chart-format-2)
303
+ 3 columns - string, string, numeric - [Example](https://blazer.dokkuapp.com/queries/7-column-chart-format-2)
302
304
 
303
305
  ```sql
304
306
  SELECT gender, zip_code, COUNT(*) FROM users GROUP BY 1, 2
@@ -314,7 +316,7 @@ SELECT x, y FROM table
314
316
 
315
317
  ### Maps
316
318
 
317
- Columns named `latitude` and `longitude` or `lat` and `lon` or `lat` and `lng` - [Example](https://blazerme.herokuapp.com/queries/15-map)
319
+ Columns named `latitude` and `longitude` or `lat` and `lon` or `lat` and `lng` - [Example](https://blazer.dokkuapp.com/queries/15-map)
318
320
 
319
321
  ```sql
320
322
  SELECT name, latitude, longitude FROM cities
@@ -324,7 +326,7 @@ To enable, get an access token from [Mapbox](https://www.mapbox.com/) and set `E
324
326
 
325
327
  ### Targets
326
328
 
327
- Use the column name `target` to draw a line for goals. [Example](https://blazerme.herokuapp.com/queries/8-target-line)
329
+ Use the column name `target` to draw a line for goals. [Example](https://blazer.dokkuapp.com/queries/8-target-line)
328
330
 
329
331
  ```sql
330
332
  SELECT date_trunc('week', created_at), COUNT(*) AS new_users, 100000 AS target FROM users GROUP BY 1
@@ -332,7 +334,7 @@ SELECT date_trunc('week', created_at), COUNT(*) AS new_users, 100000 AS target F
332
334
 
333
335
  ## Dashboards
334
336
 
335
- Create a dashboard with multiple queries. [Example](https://blazerme.herokuapp.com/dashboards/1-dashboard-demo)
337
+ Create a dashboard with multiple queries. [Example](https://blazer.dokkuapp.com/dashboards/1-dashboard-demo)
336
338
 
337
339
  If the query has a chart, the chart is shown. Otherwise, you’ll see a table.
338
340
 
@@ -340,7 +342,7 @@ If any queries have variables, they will show up on the dashboard.
340
342
 
341
343
  ## Checks
342
344
 
343
- Checks give you a centralized place to see the health of your data. [Example](https://blazerme.herokuapp.com/checks)
345
+ Checks give you a centralized place to see the health of your data. [Example](https://blazer.dokkuapp.com/checks)
344
346
 
345
347
  Create a query to identify bad rows.
346
348
 
@@ -392,19 +394,22 @@ data_sources:
392
394
 
393
395
  ### Full List
394
396
 
395
- - [PostgreSQL](#postgresql-1)
396
- - [MySQL](#mysql-1)
397
- - [SQL Server](#sql-server)
398
- - [Oracle](#oracle)
399
- - [IBM DB2 and Informix](#ibm-db2-and-informix)
400
- - [SQLite](#sqlite)
397
+ - [Amazon Athena](#amazon-athena)
401
398
  - [Amazon Redshift](#amazon-redshift)
402
- - [Amazon Athena](#amazon-athena-master) [master]
403
- - [Presto](#presto)
404
399
  - [Apache Drill](#apache-drill)
400
+ - [Cassandra](#cassandra)
401
+ - [Druid](#druid)
402
+ - [Elasticsearch](#elasticsearch) [beta]
405
403
  - [Google BigQuery](#google-bigquery)
404
+ - [IBM DB2 and Informix](#ibm-db2-and-informix)
406
405
  - [MongoDB](#mongodb-1)
407
- - [Elasticsearch](#elasticsearch-beta) [beta]
406
+ - [MySQL](#mysql-1)
407
+ - [Oracle](#oracle)
408
+ - [PostgreSQL](#postgresql-1)
409
+ - [Presto](#presto)
410
+ - [Snowflake](#snowflake)
411
+ - [SQLite](#sqlite)
412
+ - [SQL Server](#sql-server)
408
413
 
409
414
  You can also [create an adapter](#creating-an-adapter) for any other data store.
410
415
 
@@ -416,128 +421,162 @@ data_sources:
416
421
  url: <%= ENV["BLAZER_MY_SOURCE_URL"] %>
417
422
  ```
418
423
 
419
- ### PostgreSQL
424
+ ### Amazon Athena
420
425
 
421
- Add [pg](https://bitbucket.org/ged/ruby-pg/wiki/Home) to your Gemfile (if it’s not there) and set:
426
+ Add [aws-sdk-athena](https://github.com/aws/aws-sdk-ruby) and [aws-sdk-glue](https://github.com/aws/aws-sdk-ruby) to your Gemfile and set:
422
427
 
423
428
  ```yml
424
429
  data_sources:
425
430
  my_source:
426
- url: postgres://user:password@hostname:5432/database
431
+ adapter: athena
432
+ database: database
433
+ output_location: s3://some-bucket/
427
434
  ```
428
435
 
429
- ### MySQL
436
+ ### Amazon Redshift
430
437
 
431
- Add [mysql2](https://github.com/brianmario/mysql2) to your Gemfile (if it’s not there) and set:
438
+ Add [activerecord4-redshift-adapter](https://github.com/aamine/activerecord4-redshift-adapter) or [activerecord5-redshift-adapter](https://github.com/ConsultingMD/activerecord5-redshift-adapter) to your Gemfile and set:
432
439
 
433
440
  ```yml
434
441
  data_sources:
435
442
  my_source:
436
- url: mysql2://user:password@hostname:3306/database
443
+ url: redshift://user:password@hostname:5439/database
437
444
  ```
438
445
 
439
- ### SQL Server
446
+ ### Apache Drill
440
447
 
441
- Add [tiny_tds](https://github.com/rails-sqlserver/tiny_tds) and [activerecord-sqlserver-adapter](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter) to your Gemfile and set:
448
+ Add [drill-sergeant](https://github.com/ankane/drill-sergeant) to your Gemfile and set:
442
449
 
443
450
  ```yml
444
451
  data_sources:
445
452
  my_source:
446
- url: sqlserver://user:password@hostname:1433/database
453
+ adapter: drill
454
+ url: http://hostname:8047
447
455
  ```
448
456
 
449
- ### Oracle
457
+ ### Cassandra
450
458
 
451
- Use [activerecord-oracle_enhanced-adapter](https://github.com/rsim/oracle-enhanced).
459
+ Add [cassandra-driver](https://github.com/datastax/ruby-driver) to your Gemfile and set:
452
460
 
453
- ### IBM DB2 and Informix
461
+ ```yml
462
+ data_sources:
463
+ my_source:
464
+ url: cassandra://user:password@hostname:9042/keyspace
465
+ ```
454
466
 
455
- Use [ibm_db](https://github.com/ibmdb/ruby-ibmdb).
467
+ ### Druid
456
468
 
457
- ### SQLite
469
+ First, [enable SQL support](http://druid.io/docs/latest/querying/sql.html#configuration) on the broker.
458
470
 
459
- Add [sqlite3](https://github.com/sparklemotion/sqlite3-ruby) to your Gemfile and set:
471
+ Set:
460
472
 
461
473
  ```yml
462
474
  data_sources:
463
475
  my_source:
464
- url: sqlite3:path/to/database.sqlite3
476
+ adapter: druid
477
+ url: http://hostname:8082
465
478
  ```
466
479
 
467
- ### Amazon Redshift
480
+ ### Elasticsearch
468
481
 
469
- Add [activerecord4-redshift-adapter](https://github.com/aamine/activerecord4-redshift-adapter) or [activerecord5-redshift-adapter](https://github.com/ConsultingMD/activerecord5-redshift-adapter) to your Gemfile and set:
482
+ Add [elasticsearch](https://github.com/elastic/elasticsearch-ruby) to your Gemfile and set:
470
483
 
471
484
  ```yml
472
485
  data_sources:
473
486
  my_source:
474
- url: redshift://user:password@hostname:5439/database
487
+ adapter: elasticsearch
488
+ url: http://user:password@hostname:9200
475
489
  ```
476
490
 
477
- ### Amazon Athena [master]
491
+ ### Google BigQuery
478
492
 
479
- Add [aws-sdk](https://github.com/aws/aws-sdk-ruby) `~> 2` to your Gemfile and set:
493
+ Add [google-cloud-bigquery](https://github.com/GoogleCloudPlatform/google-cloud-ruby/tree/master/google-cloud-bigquery) to your Gemfile and set:
480
494
 
481
495
  ```yml
482
496
  data_sources:
483
497
  my_source:
484
- adapter: athena
485
- database: database
486
- output_location: s3://some-bucket/
498
+ adapter: bigquery
499
+ project: your-project
500
+ keyfile: path/to/keyfile.json
487
501
  ```
488
502
 
489
- ### Presto
503
+ ### IBM DB2 and Informix
490
504
 
491
- Add [presto-client](https://github.com/treasure-data/presto-client-ruby) to your Gemfile and set:
505
+ Use [ibm_db](https://github.com/ibmdb/ruby-ibmdb).
506
+
507
+ ### MongoDB
508
+
509
+ Add [mongo](https://github.com/mongodb/mongo-ruby-driver) to your Gemfile and set:
492
510
 
493
511
  ```yml
494
512
  data_sources:
495
513
  my_source:
496
- url: presto://user@hostname:8080/catalog
514
+ url: mongodb://user:password@hostname:27017/database
497
515
  ```
498
516
 
499
- ### Apache Drill
517
+ ### MySQL
500
518
 
501
- Add [drill-sergeant](https://github.com/ankane/drill-sergeant) to your Gemfile and set:
519
+ Add [mysql2](https://github.com/brianmario/mysql2) to your Gemfile (if it’s not there) and set:
502
520
 
503
521
  ```yml
504
522
  data_sources:
505
523
  my_source:
506
- adapter: drill
507
- url: http://hostname:8047
524
+ url: mysql2://user:password@hostname:3306/database
508
525
  ```
509
526
 
510
- ### Google BigQuery
527
+ ### Oracle
511
528
 
512
- Add [google-cloud-bigquery](https://github.com/GoogleCloudPlatform/google-cloud-ruby/tree/master/google-cloud-bigquery) to your Gemfile and set:
529
+ Use [activerecord-oracle_enhanced-adapter](https://github.com/rsim/oracle-enhanced).
530
+
531
+ ### PostgreSQL
532
+
533
+ Add [pg](https://bitbucket.org/ged/ruby-pg/wiki/Home) to your Gemfile (if it’s not there) and set:
513
534
 
514
535
  ```yml
515
536
  data_sources:
516
537
  my_source:
517
- adapter: bigquery
518
- project: your-project
519
- keyfile: path/to/keyfile.json
538
+ url: postgres://user:password@hostname:5432/database
520
539
  ```
521
540
 
522
- ### MongoDB
541
+ ### Presto
523
542
 
524
- Add [mongo](https://github.com/mongodb/mongo-ruby-driver) to your Gemfile and set:
543
+ Add [presto-client](https://github.com/treasure-data/presto-client-ruby) to your Gemfile and set:
525
544
 
526
545
  ```yml
527
546
  data_sources:
528
547
  my_source:
529
- url: mongodb://user:password@hostname:27017/database
548
+ url: presto://user@hostname:8080/catalog
530
549
  ```
531
550
 
532
- ### Elasticsearch [beta]
551
+ ### Snowflake
533
552
 
534
- Add [elasticsearch](https://github.com/elastic/elasticsearch-ruby) to your Gemfile and set:
553
+ First, install the [ODBC driver](https://docs.snowflake.net/manuals/user-guide/odbc.html). Add [odbc_adapter](https://github.com/localytics/odbc_adapter) to your Gemfile and set:
535
554
 
536
555
  ```yml
537
556
  data_sources:
538
557
  my_source:
539
- adapter: elasticsearch
540
- url: http://user:password@hostname:9200
558
+ adapter: snowflake
559
+ dsn: ProductionSnowflake
560
+ ```
561
+
562
+ ### SQLite
563
+
564
+ Add [sqlite3](https://github.com/sparklemotion/sqlite3-ruby) to your Gemfile and set:
565
+
566
+ ```yml
567
+ data_sources:
568
+ my_source:
569
+ url: sqlite3:path/to/database.sqlite3
570
+ ```
571
+
572
+ ### SQL Server
573
+
574
+ Add [tiny_tds](https://github.com/rails-sqlserver/tiny_tds) and [activerecord-sqlserver-adapter](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter) to your Gemfile and set:
575
+
576
+ ```yml
577
+ data_sources:
578
+ my_source:
579
+ url: sqlserver://user:password@hostname:1433/database
541
580
  ```
542
581
 
543
582
  ## Creating an Adapter
@@ -580,6 +619,10 @@ Have team members who want to learn SQL? Here are a few great, free resources.
580
619
 
581
620
  For an easy way to group by day, week, month, and more with correct time zones, check out [Groupdate](https://github.com/ankane/groupdate.sql).
582
621
 
622
+ ## Standalone Version
623
+
624
+ Looking for a standalone version? Check out [Ghost Blazer](https://github.com/buren/ghost_blazer).
625
+
583
626
  ## Anomaly Detection on Heroku
584
627
 
585
628
  Add the [R buildpack](https://github.com/virtualstaticvoid/heroku-buildpack-r) to your app.
@@ -692,7 +735,7 @@ end
692
735
  And run:
693
736
 
694
737
  ```sh
695
- rake db:migrate
738
+ rails db:migrate
696
739
  ```
697
740
 
698
741
  Update `config/blazer.yml` with:
@@ -761,7 +804,7 @@ View the [changelog](https://github.com/ankane/blazer/blob/master/CHANGELOG.md)
761
804
 
762
805
  Blazer uses a number of awesome open source projects, including [Rails](https://github.com/rails/rails/), [Vue.js](https://github.com/vuejs/vue), [jQuery](https://github.com/jquery/jquery), [Bootstrap](https://github.com/twbs/bootstrap), [Selectize](https://github.com/brianreavis/selectize.js), [StickyTableHeaders](https://github.com/jmosbech/StickyTableHeaders), [Stupid jQuery Table Sort](https://github.com/joequery/Stupid-Table-Plugin), and [Date Range Picker](https://github.com/dangrossman/bootstrap-daterangepicker).
763
806
 
764
- Demo data from [MovieLens](http://grouplens.org/datasets/movielens/).
807
+ Demo data from [MovieLens](https://grouplens.org/datasets/movielens/).
765
808
 
766
809
  ## Want to Make Blazer Better?
767
810