Comments (5)
We've just been debugging a very similar issue - fortunately we caught ours in development. BUT! This seems like something that should be rectified or documented. In our case, we have an engine in our lib file with a dummy app and that schema is run by coverband.
A blacklist seems like a good approach to this issue but this is also super dangerous behavior.
from coverband.
WOW, prod DB drop that is terrible. So sorry about that... I am a bit confused what has changed to have two folks hit this recently, as I have never had a report like this in the 4 years the project has been in use.
I will need to ponder a bit... Some quick thoughts:
- I run baseline on dev machine and not on production, I just send it to the same source as when I report from production
- If that isn't clear from the docs it might be good to make that more clear, there isn't any reason to run
baseline
on production (or staging, QA stacks, etc) EVER.
- If that isn't clear from the docs it might be good to make that more clear, there isn't any reason to run
- I guess most ruby should 'execute' on load, but generally it shouldn't have any actions. I definitely consider any scripts that do pretty dangerous
- I don't like the blacklist as it would mean you need to know what to avoid before running. So I think we will need to come up with something better and safer than that.
- That being said since both issues are schema related perhaps skipping all schema files by default would be a smart move.
- I do run Coverband on non Rails apps, so I would like to make sure the eager load approach could accommodate both by checking for availability and falling back to other behavior.
from coverband.
I confirmed that require './db/schema.rb'
on standard rails app would do this... since the schema is by default not in app or lib I haven't ever seen this or heard about it being an issue... make sense a bit more related to engines (although engines should still create folders and files in db folder).
Thinking I will add schema.rb
to default exclude list and merge the PR from @latazzajones as a first line of defense.
from coverband.
ok @stephenprater coverband 1.5.2 was released with the PR from @latazzajones as well as this commit ( bf34b3b ) which will by default ignore any schema.rb
files.
I still think looking at your PR and other ways to avoid this ever happening to anyone else would be good... let me know thoughts on other steps. Also, so sorry again as I have had to be part of multiple production DB recoveries in the past and I know it is a terrible thing.
from coverband.
OK closing this out based on the PR and discussion here
and added warnings to readme: d1218aa
from coverband.
Related Issues (20)
- Allow merging coverage data files and creating a report off of the combined coverage HOT 3
- undefined method `each_pair' for nil:NilClass with gitlab rails application HOT 12
- Manually stoping coverband HOT 4
- Coverage UI stuck in loading HOT 3
- FileHasher 'hash' method throwing error with Padrino Framework HOT 1
- Not able to mount Coverband with Padrino Application HOT 11
- Enhancement Request: Speed up coverage loading HOT 26
- How do I clear/reset coverage of tracked views? HOT 9
- Output showing 0% or 100% in % Covered HOT 2
- Assets HOT 1
- Redis maximum number of connections HOT 4
- route tracker not showing list of not yet used routes HOT 1
- coverband tracking shape_too_complex
- Coverband Reports web View returning 500 errror unable to connect to redis HOT 3
- store clear raises TypeError on rake coverband:clear - Redis V5.0.8 HOT 2
- [feature request] display last posted datetime per line HOT 3
- 20% increase in transaction times when used in production HOT 4
- Incompatible with bootsnap. HOT 4
- Docs/clarification request HOT 2
- Using COVERBAND_DISABLE_AUTO_START produces logging that Coverband failed to connect HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from coverband.